[정규식 놀이] 2-1 지정 문자열을 포함한 행 찾기

정규식은 잘 알아두면 문자열 처리가 무척 간편해지지만 제대로 잘 쓰게 될 때까지 이런저런 어려움이 있지요.
하지만 정규식 잘 쓰는 사람을 보면 멋지더라고요. :)
그래서 오늘부터 정규식 공부를 위해 정규식 퍼즐 페이지에 있는 문제를 하나씩 옮겨 볼까 합니다.

참고 사이트는 http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/ 입니다.

정규식도 등급이 있어서 grep, egrep에서 쓸 수 있는 것도 있고 그보다 한단계 높은 perl 정규식 등이 있는데 이번에 사용하는 정규식은 EmEditor에서 제대로 동작하는 정규식입니다. EmEditor는 Joost의 Regex++를 사용하는 것 같다고 하네요.

그럼 오늘의 문제는 지정 문자열을 포함한 행 찾기입니다.
검색 조건을 만족하는 부분은 보라색으로 표시했습니다.

검색 조건 // ab를 포함하고 bc를 포함하고 cd를 포함하는 행을 검색하라.

대상 데이터 //
abcdefg
acbdefg
ab
bc
cdxxabxxbc
abc
xxabcdefgxx



정답은...


^(?=.*ab)(?=.*bc)(?=.*cd).*$

입니다. ?= 는 괄호 안의 표현이 이어져 있을 것을 요구하는 정규 기호입니다. 해당하는 글을 찾는 것과는 관계가 없지만 일정 조건을 만족하는 걸 찾을 때 좋습니다.

by NuRi | 2008/10/16 23:30 | 암호같은 글들 | 트랙백 | 덧글(1)

트랙백 주소 : http://nuridol.egloos.com/tb/1823755
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by laystall at 2008/10/17 00:17
'정규직 놀이'라 잘못 읽고 '아, 뭔가 NuRi님께서 비정규직 문제를 프로그래밍에 비춰 재치있는 글을 쓰셨나보다'라고 착각했슴다..

:         :

:

비공개 덧글