정규식: 두 판 사이의 차이

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?://(?!(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]+ = 이메일 검사 코드 열줄 넘게 쓸걸 이거 한줄이면 끝나는데 많이 편하다.

같이 보기