正则表达式与php的链接

正则表达式与php的链接,php,regex,preg-match,Php,Regex,Preg Match,我正试图正则化一个困难的环节 preg_match_all('/<a[^>]*href\s*=\s*(["\'])(.*?)\1[^>]*>\s+TEXTTOFIND+(.*?)\s*<\/a>/', '<a href="http://subdomain.BLABLABLA.net/de/cgi/g.fcgi/BLABLABLA/print?folder=inbox&amp;uid=U3RlcClzESBNZK9SDGsmQ05yIJTj7Eax

我正试图正则化一个困难的环节

preg_match_all('/<a[^>]*href\s*=\s*(["\'])(.*?)\1[^>]*>\s+TEXTTOFIND+(.*?)\s*<\/a>/', '<a href="http://subdomain.BLABLABLA.net/de/cgi/g.fcgi/BLABLABLA/print?folder=inbox&amp;uid=U3RlcClzESBNZK9SDGsmQ05yIJTj7Eax&amp;CUSTOMERNO=124332225&amp;t=de1142311604.1315866430.20ba8551" style="margin-right: 10px;" title="&quot;BLABLABLA.net Registrierung&quot; &lt;register@gutefrage.net&gt;">"TEXTTOFIND.net R...
            </a>', $match);
        print_r($match);
preg_match_all('/',$match);
打印(匹配);
bla只是一个隐藏真实页面的测试:)

我只想找到带有“TEXTTOFIND”的链接的URL


但是它不起作用:(

您应该使用DOM解析器来完成这项工作,而不是使用正则表达式。但是,如果您无论如何都想用错误的方法来完成,它不起作用的原因之一似乎是您试图匹配:

... [^>]*>\s+TEXTTOFIND ...
但您的测试字符串是:

... >"TEXTTOFIND
请注意右括号和TEXTTOFIND字符串之间的双引号
。正则表达式中的修饰符
\s+
将与此不匹配。

首先,尝试读取文档,您错过了第二个参数

第二,你好,亚历克斯:)


在3rd\s+时,您可以更改为。在某些情况下(对不起,我的英语)

我喜欢正则表达式,但它不适合这种情况。