LINUX.ORG.RU

perl. помогите составить regexp


0

0

$_='%par1;%par2:%par3';

@args = $_ =~ /(%\w{2})(.*)(%\w{2})/g; # неработает

у меня не получается спарсить в массив так чтобы элементами являлись те части строк которые начинаются с процента и символы разделители

в массиве должен получиться результат

('%par1',';','%par2',':','%par3')

параметров (те что начинаются с '%') не 3 их может быть больше или меньше

если комуто интересно что это и зачем мне это надо

я пишу в одну программу функцию форматирования где вместо %par1 например подставится то нужное значение а всё что без процента это разделители так и будут отображаться

заранее спасибо за помощь

anonymous
Ответ на: комментарий от josephson

это не совсем то что надо

нужно разделять не именно по двоеточию или точки с запятой

а например из командной строки задаётся параметр какой то опции например

bash$ ./prog -F '%par1 %par2 (%par3)'

вместо всех элементов строки начинающиеся с процента подставятся нужные значения (разумеется они предопределены)

между первым и вторым параметром разделителем будет пробел ,третий будет взят в скобки

для удобства парсинга все опции передоваемые в функцию будут двухбуквенные -- %aa, %bb, etc

anonymous
()
Ответ на: комментарий от anonymous

пасиб... хех, всё идеально и просто нужно было только подумать и не зацыкливаться на варианте с обратными ссылками

удачи

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.