2

我正在尝试匹配一个看起来像这样的字符串:

<$Fexample text in here>>

用这个表达式:

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

但是,在某些情况下,我的反向引用内容包含“>”,因此是这样的:

<$Fexample text in here <em>>>

仅在反向引用中匹配example text in here <em。在有或没有这些 html 实体的情况下,我需要做什么才能有条件地返回正确的反向引用?

4

3 回答 3

5

您可以将开始和结束锚点添加到正则表达式:

^<\$F(.+?)>{2}$
于 2010-08-31T06:23:07.160 回答
3

尝试

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

只有一长串中的最后一个力(?!>)将被匹配。>>>>>..>>>


编辑:

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

也有效。

于 2010-08-31T06:21:46.023 回答
0

请注意,除了您真正做(我认为)您想做的事情之外,您还必须解释格式正确的括号表达式,这在常规语言中是不可能的。

换句话说,<$Fexample <tag <tag <tag>>> example>> oh this should not happen>example <tag <tag <tag>>> example>> oh this should not happen作为捕获组返回。

于 2010-08-31T06:52:18.620 回答