正则表达式:删除所有后跟逗号的数字
RegEx: Delete all numbers followed by a comma
我的数据库中有 HTML link 需要修改。
示例 link 如下所示:
<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
但最终只删除了 link 中的 1,
。
我最大的问题是告诉表达式 "look for any occurrence of a number followed by a comma, but not a period".
谁能帮我找到一个删除所有数字后跟逗号的正则表达式?
请记住,这些 link 位于一个非常大的 HTML 代码块中。所以正则表达式必须只匹配这些 links.
以下正则表达式
(?:(?:^|(?<!\)").*?href=")(*SKIP)(?!)|\d+,
(*SKIP)(?!)
(?!)
: 失败
(*SKIP)
:避免回溯
.*?href="
:匹配第一个 href="
序列之前的所有
(?:^|(?<!\)")
: ^
行锚点的开头或 "
前面没有 \
和
请注意,如果 href 可以出现在标签之外,则可能不安全。
使用相同技术的更安全的解决方案
(?:<![CDATA[.*?]]>|<!--.*?-->|>[^<]*<|href="|"[^">]*(?=>)|(?<!href=)"(?:\.|[^"])*")(*SKIP)(?!)|\d+,
我的数据库中有 HTML link 需要修改。 示例 link 如下所示:
<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
但最终只删除了 link 中的 1,
。
我最大的问题是告诉表达式 "look for any occurrence of a number followed by a comma, but not a period".
谁能帮我找到一个删除所有数字后跟逗号的正则表达式? 请记住,这些 link 位于一个非常大的 HTML 代码块中。所以正则表达式必须只匹配这些 links.
以下正则表达式
(?:(?:^|(?<!\)").*?href=")(*SKIP)(?!)|\d+,
(*SKIP)(?!)
(?!)
: 失败(*SKIP)
:避免回溯
.*?href="
:匹配第一个href="
序列之前的所有(?:^|(?<!\)")
:^
行锚点的开头或"
前面没有\
和
请注意,如果 href 可以出现在标签之外,则可能不安全。
使用相同技术的更安全的解决方案
(?:<![CDATA[.*?]]>|<!--.*?-->|>[^<]*<|href="|"[^">]*(?=>)|(?<!href=)"(?:\.|[^"])*")(*SKIP)(?!)|\d+,