Что нового

[RegExp] Как заставить RegExp обрабатывать переносы строк выборочно?

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Всем привет. Уже 3 день голову ломаю над регуляркой. Не могу придумать как обработать текст:
Код:
ExtractTitle="Команда 1 строка-1"
ExtractDialogText="Команда 1 строка 0"
HelpText="Строка в несколько линий:

> Test

AnotherLine"
RunProgram="Команда 1 строка"
RunProgram="Команда 1 строка2"
Составил только для одиночной строки:
Код:
'(\w+\d?)\s*=\s*"(.+)"'
Незадача...
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Вопрос не очень понятно составлен.

Возможно, так:

Код:
'(?s)(\w+\d?)\s*=\s*"(.+?)"(?=[\r\n]|$)'
 
Автор
Medic84

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
asdf8
Идеально.... Не объяснишь смысл добавленного? И каким образом действует? :smile:
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Даже не знаю, что тут объяснять. Могу понавтыкать цитат из справки по регэкспам:

Код:
(?s) - символ . соответствует всему, включая переход на новую строку. По умолчанию
   символ . не включает переход на новую строку.

Код:
? (после символа повтора) - предпочтительный выбор наименьшего фрагмента перед большим

Код:
позициионная проверка:
	(?= – начнём проверку на наличие совпадения справа (после этой точки есть фрагмент текста, который соответствует указанному  регулярному выражению)
	) – завершим проверку
 
Верх