주제: 정규 표현식 고수님들께 도움을 요청합니다.
안녕하세요.
제가 태터툴즈의 포스트에 참조 링크가 걸려 있으면 링크 오른쪽에 아이콘을 표시하고 링크는 새창으로 열리도록 하기 위해 플러그인을 제작하고 있습니다.
소스는 다음과 같습니다.
function link($target) {
$pattern = "/(<a[^>]*href=['\"]*([^'\"]+)['\"]*[^>]*>([^<]+)<\/a>?)/";
$target = preg_replace($pattern, "<a href=\"\\2\" target=\"_blank\">\\3<img src=\"./images/newwindow.gif\" style=\"margin-left:0.1em; margin-right:0.1em; vertical-align:middle;\" alt=\"HyperLink\"></a>", $str);
return $target;
}
그런데 이 함수가
<a href="주소">어쩌구 저쩌구 재잘재잘</a>
와 같은 형식으로 되어 있으면 제대로 동작합니다. 하지만,
<a href="주소">어쩌구 <span style="color:#000000;">저쩌구</span> 재잘재잘</a>
이렇게 보다시피 <a></a> 태그 중간에 <span> 과 같은 코드가 들어가 버리면 위에서 작성한 link 함수가 동작하지 않습니다.
웹에서 정규식 메뉴얼들을 찾아서 이리저리 수정해 보고는 있습니다만, 잘 안되더군요.. ㅠㅠ
그래서 정규식 고수분들께 도움을 요청드립니다. 어떻게 하면 좋을까요?
Tyburn (2007-01-27 18:28:16)에 의해 마지막으로 수정