正则表达式匹配所有非http链接,但不匹配mailto

时间:2013-10-09 10:09:10

标签: regex

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

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

Regular expression visualization

Debuggex Demo

应匹配

<a href="myurl">

不匹配

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

4 个答案:

答案 0 :(得分:3)

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

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

Regular expression visualization

Debuggex Demo

答案 1 :(得分:0)

使用否定前瞻功能来解除使用mailto的网址

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

答案 2 :(得分:0)

如建议的那样,尝试使用Negative-lookahead。

这可以让你有个先机:

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

答案 3 :(得分:0)

使用以下工作:

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

您可以在这里测试一下:http://regexlib.com/RETester.aspx?regexp_id=37