贪婪的正则表达式匹配
我正在尝试匹配看起来像这样的字符串:
<$Fexample text in here>>
使用以下表达式:
<\$F(.+?)>{2}
但是,在某些情况下,我的反向引用内容包含“>”,因此类似这样:
<$Fexample text in here <em>>>
仅匹配此处的 示例文本 < ;em
在反向引用中。我需要做什么才能有条件地返回带有或不带有这些 html 实体的正确反向引用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以将开始和结束锚点添加到正则表达式中,如下所示:
You can add start and end anchors to the regex as:
尝试
(?!>)
仅强制>>>..>> 长序列中的最后一个
将被匹配。>>
>编辑:
也有效。
Try
The
(?!>)
forces only the last>>
in a long sequence of>>>..>>>
will be matched.Edit:
Also works.
请注意,如果你真正做你想做的事情,你就必须解释格式良好的括号表达式,这在常规语言中是不可能的。
换句话说,
<$Fexample>>>示例>>哦,这不应该发生>
将返回example>>>示例>>哦,作为捕获组,这不应该发生
。Please note than tu truly do what (I think) you want to do, you would have to interpret well-formed bracket expressions, which is not possible in a regular language.
In other words,
<$Fexample <tag <tag <tag>>> example>> oh this should not happen>
will returnexample <tag <tag <tag>>> example>> oh this should not happen
as the capture group.