正则表达式在字符串中查找锚点

时间:2013-11-20 18:51:52

标签: regex

preg_match('.*<a\b(?=\s)(?=(?:[^>=]|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\shref=['"]([^"]*)['"]?)(?:[^>=]|='[^']*'|="[^"]*"|=[^'"\s]*)*"\s?\/?>/m',$data,result);

我该如何使用

  

php regex

在此处找到锚点链接。 这给出了语法错误。我们该如何解决这个问题。 你可以看到这里的工作状态。

  

http://www.rubular.com/r/G5F6AD5UyL

1 个答案:

答案 0 :(得分:1)

你需要在你的正则表达式中转义引号 - 在Ruby中这是不必要的,因为正则表达式是具有自己的文字语法的第一类对象,但不是在PHP中。此外,您还需要添加分隔符:

preg_match('~.*<a\b(?=\s)(?=(?:[^>=]|=\'[^\']*\'|="[^"]*"|=[^\'"][^\s>]*)*?\shref=[\'"]([^"]*)[\'"]?)(?:[^>=]|=\'[^\']*\'|="[^"]*"|=[^\'"\s]*)*"\s?/?>~m',$data,result);