我正在使用此正则表达式从网页中过滤.pdffiles:
$regex='|<a.*?href="(.*pdf?)"|';
如果链接是这样的话,那就完成了工作:
www.xyz.com/trgrrtr/ghtty.pdf
但如果链接是这样的,则无法过滤:
www.xyz.com/trgrrtr/ghtty.pdf?code=KksRHhdVXAoECBFCVFpeXBsBUgYMDQpxd3J2d3F2fDtzfnFuLiErNXNpIG5kYm16aGhpcmxoa05QV1VKUVFFUxQ%3D
我应该用什么正则表达式从网页中过滤掉这个链接?
答案 0 :(得分:0)
答案 1 :(得分:0)
首先,您需要转义?
,否则只会使f
前面的$regex = '|<a.*?href="([^"]*\.pdf\?[^"]*)"|';
成为可选项。然后你可以做这样的事情:
.*
使用否定的字符类可确保您不能保留该属性。 ("
也可以使用属性结尾"
,然后继续{{1}}匹配字符串后面的另一个双引号。)
但我真的建议您先使用DOM解析器来查找链接元素。 PHP有一个built-in one,并且有一个非常好用且方便的3rd-party alternative。