BBCode를 위해 교체 하나 개의 링크보다 : "텍스트 [= A HREF"http://google.com "> 링크 텍스트 텍스트"레그 일치하는 URL이 내가 레그 경기 규칙을 작성
1
A
답변
2
변경 '/\<a href\="(.*?)\">(.*?)\<\/a\>/i'
에는 욕심 임니다 일치를 확인합니다.
0
는 여기에 더 나은 정규식 - 그것은이 태그 추가 필드를 다루는 : 나는 거기에 특수 문자의 모든 탈출을 생각
\<a (?:.*?)href\=[\"\']([^\"\']+?)[\"\'][^\>]*?\>(.+?)\<\/a\>
, 나는 PHP가 고려 모르겠어요 '특별한' 하지만 기본적으로이 다음을 모두 일치해야합니다 : 나는 PHP에 대해 잘 모르지만, 펄에 하나 개 이상의 링크를 일치하도록, 또한
$subject = 'text <a id="test" href="http://google.com">LINK</a> text text <a href="http://google2.com" id="test">LINK2</a> text <a href="http://google3.com">LINK3</a>';
을, 당신은 정규식의 끝에서 /의 g 수정 필요 , 그래서 :
$search = array(
'/\<a (?:.*?)href\=[\"\']([^\"\']+?)[\"\'][^\>]*?\>(.+?)\<\/a\>/ig'
);
이 검색 결과입니다. 어쩌면 preg_replace는 이미이 작업을 수행하지만 대상 텍스트에서 인스턴스 하나만 바꾸려는 경우가 있기 때문에 놀랄 것입니다.