Php 如何在href属性中找到缺少协议的HTML链接?

Php 如何在href属性中找到缺少协议的HTML链接?,php,regex,preg-match-all,Php,Regex,Preg Match All,我试图找到这样的错误链接: <a href="mydomain.com">link</a> 但如果不起作用。。。有什么想法吗 感谢您使用: %echo' “|grep--perl-o”href[[:space:][]*=[[:space:][]*”(?!(ht | f)tps?:/)[^“]+” href=“mydomain.com” 您使用的是哪种语言?可能有一种比使用正则表达式处理HTML更简单的方法,例如,…什么语言?您应该使用DOM解析器来完成此操作。您不应该寻

我试图找到这样的错误链接:

<a href="mydomain.com">link</a>
但如果不起作用。。。有什么想法吗

感谢您使用:

%echo'
“|grep--perl-o”href[[:space:][]*=[[:space:][]*”(?!(ht | f)tps?:/)[^“]+”
href=“mydomain.com”

您使用的是哪种语言?可能有一种比使用正则表达式处理HTML更简单的方法,例如,
…什么语言?您应该使用DOM解析器来完成此操作。您不应该寻找特定的协议,而应该寻找
^(.*)://
,因为如果没有
://
部分,就无法指定协议。谢谢-但问题是正则表达式没有捕获负前瞻。我做错了什么?
href *= *"? *(?!http|https|ftp)
% echo '
<a href="http://mydomain.com">link</a>
<a href="https://mydomain.com">link</a>
<a href="ftp://mydomain.com">link</a>
<a title="My Domain"
   href="mydomain.com">link</a>
' | grep --perl -o 'href[[:space:]]*=[[:space:]]*"(?!(ht|f)tps?://)[^"]+"'
href="mydomain.com"