- 정규표현식
- 정규표현식/templete
- 정규표현식/소프트웨어
- 정규표현식/스터디/메타문자사용하기
- 정규표현식/스터디/메타문자사용하기/예제
- 정규표현식/스터디/문자집합으로찾기
- 정규표현식/스터디/문자하나찾기
- 정규표현식/스터디/반복찾기/예제
- 정규표현식/스터디/예제문제/이승한
2. 구간 지정하기 - 승한 ¶
- 구간은 중괄호로 표시한다. ({})
- 필요성
- +, *는 일치하는 문자수 제한이 없다. 최 몇개까지 일치하는지 정할 수 없다
- +, *, ?가 일치하는 수의 최솟값은 0이나 1이다. 문자수의 최솟값을 명시적으로 정의 불가능.
- 정확히 원하는 만큼만 일치하도록 문자수 못 정함
- RGB 값은
#99FFAA
처럼[:xdigit:]
가 정확하게 6번 나와야 한다.
- RGB 값은
- +, *는 일치하는 문자수 제한이 없다. 최 몇개까지 일치하는지 정할 수 없다
2.1. 정확한 반복 횟수 ¶
- RGB
- 기존 :
#[:xdigit:][:xdigit:][:xdigit:][:xdigit:][:xdigit:][:xdigit:]
- 개선 :
#[:xdigit:]{6
}
- 기존 :
2.2. 반복 횟수 범위 설정 ¶
- 날짜양식 :
\d{1,2}[-\/]\d{1,2}[-\/]\d{2,4
}
- 하지만 날짜가 54/67/9999같은 날짜도 통과 시킨다.
- 구간은 {0, 4} 처럼 0부터 시작할 수 있다.
- 하지만 날짜가 54/67/9999같은 날짜도 통과 시킨다.
(O) | 4/8/03 |
(O) | 10-6-2004 |
(X) | 2/2/2 |
(O) | 01-01-01 |
2.3. 최소 반복 횟수 찾기 ¶
- 주문이 100불 이상인 것 찾기 :
\d+: \$\d{2,}\.\d{2
}
{{|
1002: $1290.69
1003: $26.43
1004: $613.42
1005: $7.61
1006: $414.90
1007: $25.00
|}}
- 결과
1001: $496.80 1002: $1290.69 1004: $613.42 1006: $414.90
3. 과하게 일치하는 상황 방지하기 - 준석 ¶
물음표(?)는 제한된 범위만큼 일치시키고(없거나 하나만 있는 경우 일치한다), 구간을 쓰면 정확히 지정한 만큼 일치하거나 지정한 범위 안에서만 검색을 수행한다.
- 예문
<B> AK</B> and <B>HI</B>
- 검색문
<[Bb]>.*[/Bb]>
이경우 검색되는 범위는 <B> AK</B>, <B>HI</B>, <B> AK</B> and <B>HI</B> 세개가 일치되고 이것은 과하게 일치했다고 할수 있을것이다. 그럼 이렇게 중복되는것을 어떻게 방지할수 있을까? 위에서 말한 물음표(?)를 쓰면된다.
기본 수량자 | 게으른 수량자 |
* | *? |
+ | +? |
{n,} | {n,}?| |
게으른 수량자란?? 한번 걸쳐진 범위는 제외하고 검색해준다. 그러므로 이걸 사용하면 과하게 일치하는 상황을 방지할수 있다.
- 예문
<B> AK</B> and <B>HI</B>
- 정규 표현식
<[Bb]>.*[/Bb]>
이렇게 검색해야 <B> AK</B>, <B>HI</B>만을 검색해준다.