[code]
$b=«Tra lala 1234 The end»;
@a=(1,2,3,4);
$_=join(«|»,@a);
$b=~m/^.*($_)+.*$/ && print «hello\n»;
[/code]
Не просто часто, а очень часто (и не только в Perl, разумеется) встречается ситуация, когда есть некий список и нужно его вставить как часть регулярного выражения в виде (a[0]|a[1]|a[2])
Функция join делает свою работу на отлично, но внутри регэкспа она не раскрывается, приходится прибегать к дополнительному присваиванию. А как сделать проще? По-моему был раньше модификатор /e (от evaluate), но в современном перле это не работает. Скобки вида (?{join(та-та-та)}) тоже не катят.. Так что, оставить как есть?
P.S. Знаю, что есть grep, но это _очень_ частный случай, а как в более общем случае вставлять возврат функций в регэкспы?
Ответ на:
комментарий
от name_no
Ответ на:
А вот так?
от Olegymous
Ответ на:
комментарий
от DRVTiny
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [perl]eval && regex (2011)
- Форум Perl regex question (2006)
- Форум Regex для Perl & grep (2010)
- Форум perl regex end line (2009)
- Форум Построить правильно regex fail2ban (2014)
- Форум «правильный» способ бэкапа? (2003)
- Форум regex (2007)
- Форум regex (2004)
- Форум regex (2004)
- Форум single line mode в perl regex (2017)