정규식: 두 판 사이의 차이

K-위키
편집 요약 없음
편집 요약 없음
13번째 줄: 13번째 줄:
| ? || {0,1} || 0 or 1개 || 앞 문자가 없거나 1개. || 예: <code>a?</code> = a가 있거나 없음.
| ? || {0,1} || 0 or 1개 || 앞 문자가 없거나 1개. || 예: <code>a?</code> = a가 있거나 없음.
|-
|-
| * || {0,} || 0개이상 || 앞 문자가 없거나 1개 이상. ||
| * || {0,} || 0개 이상 || 앞 문자가 없거나 1개 이상. ||
|-
|-
| + || {1,} || 1개이상 || 앞 문자가 1개 이상. ||
| + || {1,} || 1개 이상 || 앞 문자가 1개 이상. ||
|-
|-
| {1} || {1,1} || 1개 || 앞 문자가 정확히 1개. ||
| {1} || {1,1} || 1개 || 앞 문자가 정확히 1개. || 예: <code>{2,4}</code> = 2~4개.
|-
|-
| . || || 임의 문자 || 임의의 1개 문자. ||
| . || || 임의 문자 || 임의의 1개 문자. ||
39번째 줄: 39번째 줄:
*특정 사이트 적용: <code>@document regexp('https?://\w*\.?\w*wiki.*')</code> = https://wiki.dcinside.com + https://ko.wikibooks.org + https://www.mediawiki.org + https://itwiki.kr + https://namu.wiki + http://rigvedawiki.net + ...
*특정 사이트 적용: <code>@document regexp('https?://\w*\.?\w*wiki.*')</code> = https://wiki.dcinside.com + https://ko.wikibooks.org + https://www.mediawiki.org + https://itwiki.kr + https://namu.wiki + http://rigvedawiki.net + ...


*특정 사이트 제외: <code>@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)?/.*')</code> = 트위터+다음+디시인사이드+위키(+디키+남간등)를 제외한 모든 사이트 적용.
*특정 사이트 제외: <code>@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/).*')</code> = 트위터+다음+디시인사이드+위키(+디키+남간등)를 제외한 모든 사이트 적용.


*이메일 검사: <code>(\w+\.)*\w+@(\w+\.)+[A-Za-z]+</code> = 이메일 검사 코드 열줄 넘게 쓸걸 이거 한줄이면 끝나는데 많이 편하다.
*이메일 검사: <code>(\w+\.)*\w+@(\w+\.)+[A-Za-z]+</code> = 이메일 검사 코드 열줄 넘게 쓸걸 이거 한줄이면 끝나는데 많이 편하다.

2021년 11월 23일 (화) 21:12 판

설명

Regular Expression, regexp, regex

정규 표현식. 프로그래머들이 애용한다.

문법

메타문자 동일문자 기능 설명 추가설명
\ escaping \., \?, [\-]
? {0,1} 0 or 1개 앞 문자가 없거나 1개. 예: a? = a가 있거나 없음.
* {0,} 0개 이상 앞 문자가 없거나 1개 이상.
+ {1,} 1개 이상 앞 문자가 1개 이상.
{1} {1,1} 1개 앞 문자가 정확히 1개. 예: {2,4} = 2~4개.
. 임의 문자 임의의 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?://(?!(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]+ = 이메일 검사 코드 열줄 넘게 쓸걸 이거 한줄이면 끝나는데 많이 편하다.

같이 보기