2

如何更改此正则表达式以不匹配 mailto 链接?

(href|src)\=\"([^(http)])(\/)?

正则表达式可视化

调试演示

应该匹配

<a href="myurl">

不应该匹配

<a href="http://myurl">
<a href="mailto://myurl">
4

4 回答 4

3

万一其他人遇到这个问题,我就这样改了

(href|src)\=\"(?!http|mailto)(\/)?

正则表达式可视化

调试演示

于 2013-10-09T10:36:58.507 回答
0

使用负前瞻来关闭带有 mailto 的 url

http://www.regular-expressions.info/lookaround.html

于 2013-10-09T10:23:37.133 回答
0

使用以下一个它的工作:

((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)

在这里你可以测试它:http ://regexlib.com/RETester.aspx?regexp_id=37

于 2013-10-09T10:47:08.657 回答
0

按照建议,尝试使用 Negative-lookahead。

这可以给你一个良好的开端:

(href|src)\=\"(?!(http|mailto))(\/)?
于 2013-10-09T10:37:10.847 回答