2008년 10월 16일
[정규식 놀이] 2-1 지정 문자열을 포함한 행 찾기
정규식은 잘 알아두면 문자열 처리가 무척 간편해지지만 제대로 잘 쓰게 될 때까지 이런저런 어려움이 있지요.
하지만 정규식 잘 쓰는 사람을 보면 멋지더라고요. :)
그래서 오늘부터 정규식 공부를 위해 정규식 퍼즐 페이지에 있는 문제를 하나씩 옮겨 볼까 합니다.
참고 사이트는 http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/ 입니다.
정규식도 등급이 있어서 grep, egrep에서 쓸 수 있는 것도 있고 그보다 한단계 높은 perl 정규식 등이 있는데 이번에 사용하는 정규식은 EmEditor에서 제대로 동작하는 정규식입니다. EmEditor는 Joost의 Regex++를 사용하는 것 같다고 하네요.
그럼 오늘의 문제는 지정 문자열을 포함한 행 찾기입니다.
검색 조건을 만족하는 부분은 보라색으로 표시했습니다.
정답은...
입니다. ?= 는 괄호 안의 표현이 이어져 있을 것을 요구하는 정규 기호입니다. 해당하는 글을 찾는 것과는 관계가 없지만 일정 조건을 만족하는 걸 찾을 때 좋습니다.
하지만 정규식 잘 쓰는 사람을 보면 멋지더라고요. :)
그래서 오늘부터 정규식 공부를 위해 정규식 퍼즐 페이지에 있는 문제를 하나씩 옮겨 볼까 합니다.
참고 사이트는 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 | 2008/10/16 23:30 | 암호같은 글들 | 트랙백 | 덧글(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]