정규식: 두 판 사이의 차이
K-위키
편집 요약 없음 |
편집 요약 없음 |
||
| 21번째 줄: | 21번째 줄: | ||
| . || || 임의 문자 || 임의의 1개 문자. || | | . || || 임의 문자 || 임의의 1개 문자. || | ||
|- | |- | ||
| (a) || || 하위식 || 예: <code>(abc|adc)<code> = <code>a(b|d)c<code> = 'abc' or 'adc'인 문자. || | | (a) || || 하위식 ||| 예: <code>(abc|adc)</code> = <code>a(b|d)c</code> = 'abc' or 'adc'인 문자. || | ||
|- | |- | ||
| (?!(a)) || || 부정 하위식 || <code>(?!(a|bc|d\.e))\w*</code> = not a+bc+d.e || 해당 문자/단어들을 제외한 | | (?!(a)) || || 부정 하위식 ||| 예: <code>(?!(a|bc|d\.e))\w*</code> = not a+bc+d.e || 해당 문자/단어들을 제외한 영숫자 문자. | ||
|- | |- | ||
| [a] || || 문자 클래스 || 예: <code>[abd]</code> = a+b+d (해당문자들중 하나와 같은 문자) || 배치순서와 무관함. | | [a] || || 문자 클래스 || 예: <code>[abd]</code> = a+b+d (해당문자들중 하나와 같은 문자) || 배치순서와 무관함. | ||
2021년 11월 23일 (화) 21:02 판
설명
Regular Expression, regexp, regex
정규 표현식. 프로그래머들이 애용한다.
문법
| 메타문자 | 동일문자 | 기능 | 설명 | 추가설명 |
|---|---|---|---|---|
| \ | escaping | \., \?, [\-] |
||
| ? | {0,1} | 0 or 1개 | 앞 문자가 없거나 1개. | 예: a? = a가 있거나 없음.
|
| * | {0,} | 0개이상 | 앞 문자가 없거나 1개 이상. | |
| + | {1,} | 1개이상 | 앞 문자가 1개 이상. | |
| {1} | {1,1} | 1개 | 앞 문자가 정확히 1개. | |
| . | 임의 문자 | 임의의 1개 문자. | ||
| (a) | 하위식 | 예: (abc|adc) = a(b|d)c = 'abc' or 'adc'인 문자. |
||
| (?!(a)) | 부정 하위식 | 예: (?!(a|bc|d\.e))\w* = not a+bc+d.e |
해당 문자/단어들을 제외한 영숫자 문자. | |
| [a] | 문자 클래스 | 예: [abd] = a+b+d (해당문자들중 하나와 같은 문자) |
배치순서와 무관함. | |
| [^a] | 부정 문자클래스 | 예: [^ab./] = not a+b+.+/ (해당문자들을 제외한 모든문자) |
특정문자 제외한 모든문자가 포함되므로 .과 /도 제외시키는것이 좋다.
| |
| [a-d] | [abcd] | a+b+c+d | ||
| [A-Za-z0-9_] | \w | 영숫자+_ | ||
| [A-Za-z0-9%\-_] | 영숫자+한글 등 모든 언어+-+_ |
적용 예시
- 특정 사이트 적용:
@document regexp('https?://\w*\.?\w*wiki.*')= https://wiki.dcinside.com + https://ko.wikibooks.org + https://www.mediawiki.org + https://itwiki.kr + https://namu.wiki + http://rigvedawiki.net + ...
- 특정 사이트 제외:
@document regexp('https?://(?!(namu|twitter))[A-Za-z0-9%\-_]*\.?(?!(daum|dc[cin]|namu|twitter))[A-Za-z0-9%\-_]+(.\w{2,3}|\.co\.\w{2}|\\.wiki)?/.*')= 트위터+다음+디시인사이드+위키(+디키+남간등)를 제외한 모든 사이트 적용.
- 이메일 검사:
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+= 이메일 검사 코드 열줄 넘게 쓸걸 이거 한줄이면 끝나는데 많이 편하다.