正则表达式与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&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&uid=U3RlcClzESBNZK9SDGsmQ05yIJTj7Eax&CUSTOMERNO=124332225&t=de1142311604.1315866430.20ba8551" style="margin-right: 10px;" title=""BLABLABLA.net Registrierung" <register@gutefrage.net>">"TEXTTOFIND.net R...
</a>', $match);
print_r($match);
preg_match_all('/',$match);
打印(匹配);
bla只是一个隐藏真实页面的测试:)
我只想找到带有“TEXTTOFIND”的链接的URL
但是它不起作用:(您应该使用DOM解析器来完成这项工作,而不是使用正则表达式。但是,如果您无论如何都想用错误的方法来完成,它不起作用的原因之一似乎是您试图匹配:
... [^>]*>\s+TEXTTOFIND ...
但您的测试字符串是:
... >"TEXTTOFIND
请注意右括号和TEXTTOFIND字符串之间的双引号“
。正则表达式中的修饰符\s+
将与此不匹配。
首先,尝试读取文档,您错过了第二个参数
第二,你好,亚历克斯:)
在3rd\s+时,您可以更改为。在某些情况下(对不起,我的英语)我喜欢正则表达式,但它不适合这种情况。