Web*_*urk 8 php regex preg-match
我已经加载了整个页面的HTML,并希望检索所有以http开头并以pdf结尾的URL.我写了以下哪些不起作用:
$html = file_get_contents( "http://www.example.com" );
preg_match( '/^http(pdf)$/', $html, $matches );
Run Code Online (Sandbox Code Playgroud)
我对正则表达式很新,但是从我学到的东西^标志着一个模式的开始并$标志着结束.我究竟做错了什么?
您需要匹配URL中间的字符:
/\bhttp[\w%+\/-]+?pdf\b/
Run Code Online (Sandbox Code Playgroud)
\b 匹配单词边界
^并$标记整个字符串的开头和结尾.你不希望他们在这里.
[...] 匹配括号中的任何字符
\w 匹配任何单词字符
+ 匹配上一场比赛的一场或多场比赛
?使得+懒惰而不是贪婪
preg_match( '/http[^\s]+pdf/', $html, $matches );
匹配http后跟非 ( [^...]) 空格 ( \s) 一次或多次 ( +) 后跟pdf