정규식 관련 질문 한번 더 드립니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

정규식 관련 질문 한번 더 드립니다. 정보

정규식 관련 질문 한번 더 드립니다.

본문

문자열을 치환하고 싶은데.
태그에 있는 내용은 치환하지 않고 순수 text만 치환하고 싶어요~

예) 'hello' 라는 단어를 치환하고 싶어요. 그런데 'hello' 가 독립된 단어일 때만 치환하고 싶어요.

http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=227947

변경전 :
hello<img src='' alt='hello'>helloeverybody
yeshello<img src='' alt='hello'>hellofriends
oh hello<img src='' alt='hello'>hello hello

원하는 변경 :
<a href='tag.php?key=hello'>hello</a><img src='' alt='hello'>helloeverybody
yeshello<img src='' alt='hello'>hellofriends
oh <a href='tag.php?key=hello'>hello</a><img src='' alt='hello'><a href='tag.php?key=hello'>hello</a> <a href='tag.php?key=hello'>hello</a>
 
잘못된변경 :
<a href='tag.php?key=hello'>hello</a><img src='' alt='hello'><a href='tag.php?key=hello'>hello</a>everybody
yes<a href='tag.php?key=hello'>hello</a><img src='' alt='hello'><a href='tag.php?key=hello'>hello</a>friends
oh <a href='tag.php?key=hello'>hello</a><img src='' alt='hello'><a href='tag.php?key=hello'>hello</a> <a href='tag.php?key=hello'>hello</a>

예제에서 'hello'이라는 단어가 총 9번 나옵니다. 그런데 태그 안에 있는 3개의 'hello'는 치환되면 안됩니다.
그리고 hello  가 독립된 단어일 때만 치환을 원하기 때문에 hellofriends 등은 치환되면 안됩니다.

알려주시면 감사하겠습니다~

댓글 전체

실력이 안되는 건지 한번에는 안되네요.. -_-
<a...>hello hello 처럼 패턴적용 한번으로 다 찾아내지 못하는 경우를 어떻게 처리해야할지..
어쨋든 억지로 다음처럼 해봤네요. ^^;

$str = "hello<img src='' alt='hello'>helloeverybody
yeshello<img src='' alt='hello'>hellofriends
oh hello<img src='' alt='hello'>hello hello hello";
echo preg_replace_callback('/(>|^)([^<]*?)\bhello\b(.*)/', "real_preg_replace", $str);

function real_preg_replace($matches) {
return $matches[1].$matches[2]."<a href='tag.php?key=hello'>hello</a>" . preg_replace_callback('/(>|^)([^<]*?)\bhello\b(.*)/', "real_preg_replace", $matches[3]);
}
전체 5 |RSS

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT