|
2008년 08월 27일
[ 상황1 ]
문자열: "#aaa# xxx" 위와 같은 문자열이 있고 #으로 시작해서 #으로 끝나는 문자열을 추출하고 싶을 경우 아래와 같이 할 수 있습니다. 표현식: /#.+#/ 매칭결과: "#aaa#" [ 상황2 ] 문자열: "#aaa# #bbb# xxx" 이번에는 위와 같은 문자열 입니다. 원하는 결과는 "#aaa#", "#bbb#" 입니다. 그런데 상황1의 표현식을 쓰면 아래와 같은 결과가 나오게 됩니다. 표현식: /#.+#/ 매칭결과: "#aaa# #bbb#" [ 상황2의 이유 ] 정규표현식에서 +, *, ? 들은 욕심쟁이 입니다. 그래서 가능한 최대 범위로 매칭합니다. 최대 범위 매칭을 풀이하자면 상황2에서 경우의 수를 따져보면 아래와 같은 매칭들이 가능합니다. "#aaa#", "#bbb#", "#aaa# #", "# #bbb#", "#aaa# #bbb#" 이중에서 가장 큰 범위의 "#aaa# #bbb#"가 선정되는 것이죠. [ 상황2의 해결방법 ] 정규표현식에서 +, *, ? 들의 욕심을 최소화 시킬 수 있습니다. 아래와 같이 바꿔서 사용하면 됩니다. + 대신 +? * 대신 *? ? 대신 ?? [ 상황2에 해결방법을 적용 ] 문자열: "#aaa# #bbb# xxx" 표현식: /#.+?#/ 매칭결과: "#aaa#", "#bbb#" 이제 최소 범위로 매칭이 됩니다. [ PHP 정규표현식에서 가능한 다른 해결방법 ] PHP 정규표현식의 U 수정자를 이용하는 방법도 있습니다. 문자열: "#aaa# #bbb# xxx" 표현식: /#.+#/U 매칭결과: "#aaa#", "#bbb#" PHP 정규표현식에서 U 수정자를 사용하면 표현식에 사용되는 모든 +, *, ? 이 모두 +?, *?, ?? 와 같이 동작합니다. 참고문서: http://www.skdevelopment.com/php-regular-expressions.php |
ABOUT
이글루 파인더
카테고리
그냥 잡담
※방명록은 따로 없고 무조건 최신글에 댓글 남기시면 됩니다. ^^ 최근 등록된 덧글
방문해주셔서 감사합니다. ^^
by -A2- at 07/05 헉 모델인줄 알았어요..,.. 저도 프.. by 핑구야 날자 at 07/05 리눅스에서도 정말 가볍다는 것을 느낄 .. by -A2- at 07/04 리눅스에서는 얼마나 빠른지 궁금하네요 by 아크몬드 at 07/04 저는 공CD에 시계바늘 만들어서 전역일.. by -A2- at 07/04 아~ 잡지에 나왔었던거군요. by -A2- at 07/04 좋은 결과 있으시길 바랍니다. 즐거운 .. by -A2- at 07/04 이거 보니까 군대있을때 php로 전역일.. by 오자히르 at 07/04 이거이거 잡지책에서 봤던 그 머신이군요!! by 오자히르 at 07/04 시게이트 하드 후기 이후로 이 블로그.. by 오자히르 at 07/04 도움이 되었다니 기쁘네요. ^^ by -A2- at 07/03 앗! ㅋㅋ 성공하시길 바랍니다. ^^)/ by -A2- at 07/03 마침 의자가 필요했는데.. 좋은 정보 .. by Channy at 07/03 로또확률 2배에 도전합니다+ㅂ+/ ..(.. by 담요 at 07/03 앗! 그랬군요. 블로그 2개 운영하고 있.. by -A2- at 07/03 좋은 결과가 있으시길 바래요. ^^ by -A2- at 07/03 체어..ㅠㅠ by -A2- at 07/03 방금 신청했어요~ ^-^ by 정원 at 07/03 의자..ㅠㅠ by 퐈 at 07/03 안녕하세요~~ A2님 로빈입니다. 이제.. by 로빈 at 07/03 최근 등록된 트랙백
국군장병 여러분 추카! MB덕분에 예비..
by Green Monkey Blog** 쫑파티 그날의 사진들 by Seagate's Blog 바라쿠다 이벤트 쫑파티 참석 후기! by 위즈군의 라이프로그 드래그 미 투 헬 _ 클래식한 B급 호러 .. by the Real Folk Blues 드래그 미 투 헬, 2009 by Plan9 Blog ◆ '나눔 마당'에 동참할 이웃 지기님들의.. by 초하뮤지엄.넷 chohamuseum.net Wordpress 2.8 Released by Astraea's Say about,,, A2의 생각 by ani2life's me2DAY 가시는 길 지켜보고 왔습니다. by Justice died in this world. 영결식중에 하고있는 MB의 만행들 by Homo Ludens 이전 블로그
라이프 로그
|