This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| regular_expression [2022/10/16 05:58] – Lookaround ledyx | regular_expression [2022/10/16 15:21] (current) – 문단 수정 ledyx | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| = 기본 개념 = | = 기본 개념 = | ||
| + | |||
| + | == Basic Metacharacters == | ||
| + | |||
| + | |< | ||
| + | ^ Metacharacter | ||
| + | | | ||
| + | | | ||
| + | | | ||
| + | | ? | ||
| + | |||
| + | |< | ||
| + | ^ Metacharacter | ||
| + | | < | ||
| + | | < | ||
| + | |||
| + | == 범위 == | ||
| + | |||
| + | |< | ||
| + | ^ Metacharacter | ||
| + | | < | ||
| + | | < | ||
| + | | | ||
| + | |||
| + | |< | ||
| + | ^ Metacharacter | ||
| + | | < | ||
| + | | < | ||
| + | | < | ||
| + | | < | ||
| + | | < | ||
| + | | < | ||
| + | |||
| + | == 공백 문자 == | ||
| + | |||
| + | |< | ||
| + | ^ Metacharacter | ||
| + | | | ||
| + | |||
| + | ^ Metacharacter | ||
| + | | | ||
| + | | | ||
| + | | | ||
| + | | | ||
| + | | | ||
| + | |||
| + | ^ Metacharacter | ||
| + | | | ||
| + | | | ||
| == Quantifier == | == Quantifier == | ||
| - | 수량자. | + | 수량자. |
| 과하게 일치하는 상황 방지 | 과하게 일치하는 상황 방지 | ||
| Line 37: | Line 85: | ||
| - | == Backreference | + | == |
| - | **괄호로 감싼 하위 표현식**을 참조하는 정규 표현식. $1~n 으로 표현. (일부 언어는 | + | |< |
| + | ^ Metacharacter | ||
| + | | < | ||
| + | | < | ||
| + | | < | ||
| - | 변수와 비슷. | ||
| - | === 예시 === | + | |<100%>| |
| - | + | ^ Metacharacter | |
| - | <sxh java> | + | | \b | |
| - | String eg1 = " | + | | \B | \b 반대로 일치 |
| - | String result1 = eg1.replaceAll(" | + | |
| - | System.out.println(result1); | + | |
| - | + | ||
| - | String eg2 = " | + | |
| - | String result2 = eg2.replaceAll(" | + | |
| - | System.out.println(result2); | + | |
| - | </ | + | |
| == Lookaround == | == Lookaround == | ||
| - | 일치하는 영역을 제외하고, | + | 일치하는 영역을 제외하고, |
| - | === Lookahead === | + | 부정형은 "< |
| - | 전방 탐색 | + | |< |
| + | ^ Metacharacter | ||
| + | | < | ||
| + | | < | ||
| - | | + | ^ Metacharacter |
| - | * Negative < | + | | < |
| + | | < | ||
| + | |||
| + | === 예시 === | ||
| + | * 긍정형 전방탐색 | ||
| < | < | ||
| Line 76: | Line 127: | ||
| <bg skyblue> | <bg skyblue> | ||
| - | + | * 긍정형 | |
| - | === Lookbehind | + | |
| - | 후방 탐색. | + | |
| - | + | ||
| - | * Positive : < | + | |
| - | * Negative : < | + | |
| < | < | ||
| Line 91: | Line 137: | ||
| Total items found : 2 | Total items found : 2 | ||
| + | * 부정형 전후방탐색 | ||
| - | = Java = | + | < |
| + | \b(?< | ||
| + | </ | ||
| + | |||
| + | I paid $30 for <bg skyblue> | ||
| + | <bg skyblue> | ||
| + | I saved $5 on this order. | ||
| + | |||
| + | |||
| + | == Backreference == | ||
| + | |||
| + | **괄호로 감싼 하위 표현식**을 참조하는 정규 표현식. $1~n 으로 표현. (일부 언어는 $대신 /을 사용하기도 한다.) | ||
| + | |||
| + | 변수와 비슷. | ||
| + | |||
| + | === 예시 === | ||
| + | |||
| + | <sxh java> | ||
| + | String eg1 = " | ||
| + | String result1 = eg1.replaceAll(" | ||
| + | System.out.println(result1); | ||
| + | |||
| + | String eg2 = " | ||
| + | String result2 = eg2.replaceAll(" | ||
| + | System.out.println(result2); | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | = 언어별 활용 = | ||
| + | |||
| + | == Java == | ||
| https:// | https:// | ||
| Line 102: | Line 180: | ||
| </ | </ | ||
| - | == Pattern Constant == | + | === Pattern Constant |
| <sxh> | <sxh> | ||
| Line 114: | Line 192: | ||
| </ | </ | ||
| - | == POSIX character classes (US-ASCII only) == | + | === POSIX character classes (US-ASCII only) === |
| <sxh> | <sxh> | ||
| Line 131: | Line 209: | ||
| \p{Space} A whitespace character: [ \t\n\x0B\f\r] | \p{Space} A whitespace character: [ \t\n\x0B\f\r] | ||
| </ | </ | ||
| - | = 활용 = | ||
| - | == 전화번호 == | ||
| - | <sxh java> | ||
| - | ^(02|0[3-6]{1}[1-5]{1})-? | ||
| - | ^(15(44|77|88|99)|1644)-? | ||
| - | </ | ||
| - | |||
| - | == 소괄호 안 문자(= Parameter) 추출 == | ||
| - | <sxh java> | ||
| - | String str = "(int a, int b)"; | ||
| - | |||
| - | Pattern p = Pattern.compile(" | ||
| - | Matcher m = p.matcher(str); | ||
| - | |||
| - | while(m.find()) | ||
| - | System.out.println(m.group(1)); | ||
| - | </ | ||