티스토리 뷰
여태까지는 하나의 정규 표현식이 하나의 문자에 대응했습니다
그래서 같은 패턴의 문자가 반복되면 반복되는 수만큼 문자를 쓸 수밖에 없었습니다
예를들어, 나열된 3개의 숫자는 [0-9][0-9][0-9] 이런 식으로 찾아야 합니다
매우 비효율적이지 않나요?
반복되는 문자열을 더욱 쉽게 찾을 수 없을까요?
예문
Send personal email to ben@ecount.com.
The URL is http://www.ecount.co.kr/
If I want secure access, https://www.ecount.co.kr is valid.
httpssss://www.ecount.co.kr is invalid url.
ecountecountecountecountecount
ecountecountecount
예제1> 이메일을 찾으세요 (예문에서만 검색되면 됩니다)
결과
Send personal email to ben@ecount.com.
The URL is http://www.ecount.co.kr/
If I want secure access, https://www.ecount.co.kr is valid.
httpssss://www.ecount.co.kr is invalid url.
ecountecountecountecountecount
ecountecountecount
정규식
\w+@\w+\.\w+
새로 등장한 표현식은 더하기(+) 입니다
더하기(+)는 해당 문자의 하나이상 반복된 문자열에 일치합니다
예제2> 대문자로 시작하는 단어를 찾으세요
결과
Send personal email to ben@ecount.com.
The URL is http://www.ecount.co.kr/
If I want secure access, https://www.ecount.co.kr is valid.
httpssss://www.ecount.co.kr is invalid url.
ecountecountecountecountecount
ecountecountecount
정규식
[A-Z]\w*
\w+로 찾으면 I 를 찾을 수가 없습니다
더하기(+)는 무조건 하나 이상 일치해야 하기 때문이죠
일치하는 문자가 없어도 되는 경우를 포함하려면 별표(*)를 사용해야 합니다
별표(*)는 해당 문자가 없는 경우 또는 하나 이상 반복된 문자열에 일치합니다
예제3> URL을 찾으세요
결과
Send personal email to ben@ecount.com.
The URL is http://www.ecount.co.kr/
If I want secure access, https://www.ecount.co.kr is valid.
httpssss://www.ecount.co.kr is invalid url.
ecountecountecountecountecount
ecountecountecount
정규식
https?://[\w./]+
https*로 찾으면 httpssss:// 도 찾아지기 때문에 별표를 사용하면 안됩니다
그래서 여기서는 물음표(?)를 사용해야 하는데
물음표(?)는 해당 문자가 없거나 하나인 문자열에 일치합니다
예제4> 4~5글자 단어를 찾으세요
결과
Send personal email to ben@ecount.com.
The URL is http://www.ecount.co.kr/
If I want secure access, https://www.ecount.co.kr is valid.
httpssss://www.ecount.co.kr is invalid url.
ecountecountecountecountecount
ecountecountecount
정규식
\b\w{4,5}\b
반복 횟수를 지정하고 싶을 때는 구간을 사용할 수 있습니다
괄호 {a, b}는 해당 문자가 최소 a번 ~ 최대 b번 반복되는 문자열에 일치합니다
예제5> ecount가 두번이상 반복되는 문자열을 찾으세요
결과
Send personal email to ben@ecount.com.
The URL is http://www.ecount.co.kr/
If I want secure access, https://www.ecount.co.kr is valid.
httpssss://www.ecount.co.kr is invalid url.
ecountecountecountecountecount
ecountecountecount
정규식
ecount(ecount)+
특정한 패턴의 반복을 찾고 싶을 때는 하위 표현식으로 묶어서 사용할 수 있습니다
괄호 () 는 일부 표현식을 한 항목으로 다루도록 묶어 줍니다
이를 하위 표현식이라 합니다
연습문제> 일자표현을 찾으세요
예문
2019-04-11 05:00:00
19.05.24
19/02/21
금일(4.11) 점심약속
결과
2019-04-11 05:00:00
19.05.24
19/02/21
금일(4.11) 점심약속
'Dev 일반 > 정규식' 카테고리의 다른 글
[정규식] 8. 전방탐색과 후방탐색 (0) | 2019.05.09 |
---|---|
[정규식] 7. 역참조 사용하기 (0) | 2019.05.09 |
[정규식] 5. 메타 문자 사용하기 (0) | 2019.05.09 |
[정규식] 4. 문자 집합으로 찾기 (0) | 2019.05.09 |
[정규식] 3. 문자 하나 찾기 (0) | 2019.05.09 |