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

, как я могу работать сRegex Найти Якорь в строки

PHP регулярное выражение

находка якорь ссылку здесь. Это дает синтаксическую ошибку. как мы можем это исправить. вы можете видеть здесь рабочий статус.

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

+0

Вам не хватает основ PHP, прочтите документацию. – HamZa

ответ

1

Вы должны избежать кавычки в своем регулярном выражении - в Ruby, что не нужно, потому что регулярные выражения являются объектами первого класса со своим собственным буквального синтаксиса, но не в PHP. Кроме того, вам необходимо добавить разделители:

preg_match('~.*<a\b(?=\s)(?=(?:[^>=]|=\'[^\']*\'|="[^"]*"|=[^\'"][^\s>]*)*?\shref=[\'"]([^"]*)[\'"]?)(?:[^>=]|=\'[^\']*\'|="[^"]*"|=[^\'"\s]*)*"\s?/?>~m',$data,result); 
Смежные вопросы