Помогите вставить переменную в регулярное выражени

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Приветствую, с регулярками знаком весьма поверхностно, в связи с чем возникла проблема.
Перед искомым текстом всегда есть: {-Variable.veryfPunkt-}
Это идет после искомого текста: .<br>
Конструктор выдает:(?<=\{-Variable\.veryfPunkt-}).*(?=\.<br>), которое естественно не работает, а метод тыка в этом случае к сожалению оказался бессилен:(

Кстати регулярка (?<=\({-Variable\.veryfPunkt-}).*(?=\.<br>)) в экшене данные, парсить - работает.
А в конструкторе нет:bw:
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
А вообще я пытаюсь отработать "капчу" которая выглядит так.
Впишите третье с начала предложения слово из пункта 3.4. Правил форума
(подсвеченное зелененьким рандомно меняется)
3.4. Создавать темы, названия которых не отражают суть проблемы или вопроса, например, состоящие из слов: "Помогите", "Срочно", "Продам!" и т.

Парсю номер слова, номер пункта. Затем пытаюсь спарсить весть пункт(проблема в предыдущем сообщении), после чего почищу полученное предложение от знаков препинания, и положу в список - каждое слово с новой строки, и на конец через switch возьму нужно слово(номер слова совпадает с номером строки в списке -1, просят найти не далее десятого слова)
 

botovod

Client
Регистрация
04.04.2014
Сообщения
170
Благодарностей
126
Баллы
43
В {-Variable\.veryfPunkt-} заэкранирована точка и зенно не воспринимает переменную. Подозреваю что проблема в этом.
 
  • Спасибо
Реакции: olga.armalita

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Если убрать слеш перед точкой то зенно видит регулярку вот так
(?<=\3.7.).*(?=\.<br>)
А должен видить вот так:
(?<=3\.7\.).*(?=\.<br>)

Как правильно разекранировать точку?
 

botovod

Client
Регистрация
04.04.2014
Сообщения
170
Благодарностей
126
Баллы
43
Нужно экранировать полностью переменную 'данные' - 'обработка текста' - 'ESCape строки'
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Все разобрался. Спасибо что натолкнул меня на мысль по поводу экранировать точку.
В результате оказалось что нужно было убрать слешь не только внутри переменной, но и перед ней:-)
(?<=\{-Variable\.veryfPunkt-}).*(?=\.<br>)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)