Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Регулярные выражения > переменная внутри регулярки


Автор: evya 22.2.2013, 12:59
Есть регулярныее выражение типа
^(?:FABRICA)(.*)
^(?:ZAWOD)(.*)
^(?:OFICE)(.*)

т.е. ее нужно привести к типу, где внутри регулярного меняется переменная.
^(?:$var)(.*)


но в регулярных выражениях знак $ это конец строки?
как поступить?

Автор: skyboy 22.2.2013, 13:45
регулярное выражение компонуется как строка.
в Perl происходит замена переменных на значение внутри строки? тогда 
Цитата(evya @  22.2.2013,  11:59 Найти цитируемый пост)
^(?:$var)(.*)

или через конкатенацию строк.

Автор: Pfailed 22.2.2013, 15:37
evya, perl весьма умён в таких ситуациях. Если он видит, что существует переменная $var, то подставляет её значение, а не интерпретирует выражение, как конец строки и последовательность "var"

Автор: skyboy 22.2.2013, 16:53
Цитата(Pfailed @  22.2.2013,  14:37 Найти цитируемый пост)
evya, perl весьма умён в таких ситуациях

просто поиск переменных в пределах строки происходит до обработки строки как регулярки smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)