我的数据库中有HTML链接需要修改。 示例链接如下所示:
<a href="http://example.com/category/subcategory/1,23,456.html">My Link </a>
并希望将其更改为:
<a href="http://example.com/category/subcategory/456.html">My Link </a>
我已经尝试过:/(href=".*)\d+.*,/U
但最终只删除了1,
表单的链接。
我最大的问题是告诉表达式“查找任何出现的数字后跟逗号,但不是句号”。
有人可以帮我查找一个删除所有数字后跟逗号的RegEx吗? 请记住,这些链接属于非常大的HTML代码块。所以正则表达式必须只匹配这些链接。
答案 0 :(得分:1)
关注regexp
(?:(?:^|(?<!\\)").*?href=")(*SKIP)(?!)|\d+,
(*SKIP)(?!)
(?!)
:失败(*SKIP)
:避免回溯.*?href="
:在第一个href="
序列(?:^|(?<!\\)")
:^
行首播或"
不在\
和请注意,如果href可能出现在标记之外,则可能不安全。
使用相同技术的安全解决方案
(?:<![CDATA[.*?]]>|<!--.*?-->|>[^<]*<|href="|"[^">]*(?=>)|(?<!href=)"(?:\\.|[^"])*")(*SKIP)(?!)|\d+,