RegEx:删除所有数字后跟逗号

问题描述 投票:-2回答:1

我的数据库中有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代码块。所以正则表达式必须只匹配这些链接。

regex mariadb pcre
1个回答
1
投票

继正则表达式之后

(?:(?:^|(?<!\\)").*?href=")(*SKIP)(?!)|\d+,
  • (*SKIP)(?!) (?!):失败 (*SKIP):避免回溯
  • .*?href=":在第一个href="序列之前匹配所有
  • qazxsw poi:qazxsw poi开始线锚或qazxsw poi之前没有(?:^|(?<!\\)")

请注意,如果href可能出现在标记之外,则可能不安全。

^

使用相同技术的安全解决方案

"
© www.soinside.com 2019 - 2024. All rights reserved.