Жадные соответствия регулярных выражений - PullRequest
2 голосов
/ 31 августа 2010

Я пытаюсь сопоставить строку, которая выглядит примерно так:

<$Fexample text in here>>

с этим выражением:

<\$F(.+?)>{2}

Однако в некоторых случаях мой контент с ссылками">", что-то вроде этого:

<$Fexample text in here <em>>>

соответствует только example text in here <em в обратной ссылке.Что мне нужно сделать, чтобы условно вернуть правильную обратную ссылку с или без этих html-сущностей?

Ответы [ 3 ]

5 голосов
/ 31 августа 2010

Вы можете добавить начальные и конечные якоря к регулярному выражению как:

^<\$F(.+?)>{2}$
3 голосов
/ 31 августа 2010

Попробуйте

<\$F(.+?)>>(?!>)

(?!>) заставляет совпадать только последние >> в длинной последовательности >>>..>>>.


Редактировать:

<\$F(.+?>*)>>

Также работает.

0 голосов
/ 31 августа 2010

Обратите внимание, что чем действительно делать то, что (я думаю) вы хотите сделать, вам придется интерпретировать правильно сформированные выражения в скобках, что невозможно на обычном языке.

Другими словами, <$Fexample <tag <tag <tag>>> example>> oh this should not happen> вернет example <tag <tag <tag>>> example>> oh this should not happen в качестве группы захвата.

...