我正在尝试匹配一个看起来像这样的字符串:
<$Fexample text in here>>
用这个表达式:
<\$F(.+?)>{2}
但是,在某些情况下,我的反向引用内容包含“>”,因此是这样的:
<$Fexample text in here <em>>>
仅在反向引用中匹配example text in here <em
。在有或没有这些 html 实体的情况下,我需要做什么才能有条件地返回正确的反向引用?
我正在尝试匹配一个看起来像这样的字符串:
<$Fexample text in here>>
用这个表达式:
<\$F(.+?)>{2}
但是,在某些情况下,我的反向引用内容包含“>”,因此是这样的:
<$Fexample text in here <em>>>
仅在反向引用中匹配example text in here <em
。在有或没有这些 html 实体的情况下,我需要做什么才能有条件地返回正确的反向引用?
您可以将开始和结束锚点添加到正则表达式:
^<\$F(.+?)>{2}$
尝试
<\$F(.+?)>>(?!>)
只有一长串中的最后一个力(?!>)
将被匹配。>>
>>>..>>>
编辑:
<\$F(.+?>*)>>
也有效。
请注意,除了您真正做(我认为)您想做的事情之外,您还必须解释格式正确的括号表达式,这在常规语言中是不可能的。
换句话说,<$Fexample <tag <tag <tag>>> example>> oh this should not happen>
将example <tag <tag <tag>>> example>> oh this should not happen
作为捕获组返回。