我正在使用preg_match_all
在HTML文件中查找URL。 URL总是出现在行的开头,没有前导空格,如下所示:
<A HREF="/link/to/here"><strong>Next</strong></A>
我用它来匹配它:
preg_match_all('|^<A HREF="(?<url>.*?)"><strong>Next</strong>|', $html, $url_matches);
直到我删除了克拉(^)字符,它才起作用。我以为克拉与一行的开头相符。为什么会导致我的比赛失败?
最佳答案
您必须添加m
修饰符:
preg_match_all('|^<A HREF="(?<url>.*?)"><strong>Next</strong>|m', $html, $url_matches);
然后
^
在行的开头匹配,否则它将仅在整个字符串的开头匹配。更多信息:http://php.net/manual/en/reference.pcre.pattern.modifiers.php
关于php - 使用克拉(^)时preg_match_all不匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6179991/