【发布时间】:2019-04-24 07:42:10
【问题描述】:
我希望任何正则表达式删除所有锚标记中下划线后的所有内容,例如
输入:<a href="/category_592">Text</a>
输出<a href="/category">Text</a>
【问题讨论】:
-
这个问题不适合正则表达式。您是否考虑过将文本解析为 HTML,然后更改所有
a标签的href属性的值?
我希望任何正则表达式删除所有锚标记中下划线后的所有内容,例如
输入:<a href="/category_592">Text</a>
输出<a href="/category">Text</a>
【问题讨论】:
a 标签的 href 属性的值?
虽然您应该避免使用正则表达式解析 HTML,但由于这是一种不会嵌套的锚标记,因此您可以使用正则表达式进行快速工作。使用此正则表达式匹配 group1 和 group2 中的数据,
(<a\s+[^>]*?href=["'][^']*?)_.*?(["'])
并将其替换为\1\2(或$1$2,根据语言)
您还没有提到在 href 属性中有多个下划线的情况下应该如何替换数据,所以现在我已经这样做了,它替换了从第一次出现的下划线开始的所有内容,但是您可以轻松地做到这一点通过使正则表达式为贪婪来最后出现下划线。
【讨论】:
<a href="/category_592">Text</a> 我正在尝试查找<a(\w*)</a> replase 到\l$1 你能帮忙吗我来纠正这个。提前感谢