【发布时间】:2012-06-17 18:18:12
【问题描述】:
这是文本示例:
$text = "asd dasjfd fdsfsd http://11111.com/asdasd/?s=423%423%2F gfsdf http://22222.com/asdasd/?s=423%423%2F
asdfggasd http://3333333.com/asdasd/?s=423%423%2F";
这是我的正则表达式模式:
preg_match_all( "#http:\/\/(.*?)[\s|\n]#is", $text, $m );
匹配前两个 url,但我如何匹配最后一个?我尝试添加 [\s|\n|$] 但这也只会匹配前两个网址。
【问题讨论】:
-
没用。不管它是什么意思。我很确定这种模式总是有效的。
-
@hakre 它与第三个网址不匹配,只有前两个。
-
|用于()而不是[]表示或。您是否尝试过:(\s|\n|$)或(?:\s|\n|$)? (?:使组不匹配)-另外,您可以在$text中添加一个空格;) -
@hakre (\s|\n|$) 谢谢。
标签: php regex parsing preg-match preg-match-all