채택완료

정규식 문의드립니다.

정규식으로 특정 문자열 사이의 문자를 제거하고 싶은데요..

 

예)

[우리집] 남가좌동 동대문구 [사랑하는] 175-25번지 [우리나라] 대한민국

 

위와 같이 있다고 한다면 위에서 [~] <-- 내용들을 다 삭제하고 싶습니다.

 

[ ~ ] 내용이 다 지워진

 

답)

남가좌동 동대문구 175-25번지 대한민국

 

위와 같이 나오면 되는데요.. 고수님들의 시원한 답변을 부탁드립니다.

|

답변 2개

채택된 답변
+20 포인트

\[\w*\] 이런식으로 뽑아준 다음에 삭제해보세요

 

괄호는 특수기호라서 이스케이핑해줘야되서 백슬래쉬 써줘야되고

\w 는 알파벳 a-z,A-Z, 숫자 0-9, 언더바 _를 포함하는 문자열들을 의미합니다.

*는 0이상 여러개를 의미합니다.

즉 처음에는 [가 있고  사이에는 0이상 여러개가 있고 끝에는 ]가 있는 문자열이 찾아지게 될겁니다.

다음 예제를 참조하세요.

Copy
<?php

$str = "[우리집] 남가좌동 동대문구 [사랑하는] 175-25번지 [우리나라] 대한민국";
$pattern = "#\[[^\]]+]#";

$str1 = preg_replace($pattern, "", $str);

echo $str1;

답변을 작성하려면 로그인이 필요합니다.