정규식 표현식

반응형


정규식 연습 (https://www.regexpal.com/)


from Web Scraping with Python


기호 

 의미

 예제

일치하는 문자열

 *

바로 앞에 있는 문자, 하위 표현식, 대괄호로 묶인 문자들이 0번 이상 나타남


a*b*

 aaaaaaaa, bbbbbb, aaabbbb

 +

 바로 앞에 있는 문자, 하위 표현식, 대괄호로 묶인 문자들이 1번이상 나타남

 a+b+

 aaaaaaab, aaabbbbb, abbbbbb

 []

 대괄호 안에 있는 문자 중 하나가 나타남

 [A-Z]*

 APPLE, CAPITALS

 ()

 그룹으로 묶인 하위 표현식, 정규 표현식을 평가할 때에는 하위 표현식이 가장 먼저 평가됨

 (a*b)*

 aaabaab, abaaab, ababaaaab

 {m,n}

 바로 앞에 있는 문자, 하위표현식, 대괄호로 묶인 문자들이 m번 이상, n번 이하 나타남

 a{2,3}b{2,3}

 aabbb, aaabbb, aabb

 [^]

 대괄호 안에 있는 문자를 제외한 문자가 나타남

 [^A-Z]*

 apple, lowercase, qwerty

 |

 |로 분리된 문자, 문자열, 하위 표현식 중 하나가 나타남. |는 파이프라고 불리는 세로 막대로 대문자 I값이 아님!!!

 b(a|i|e)d

 bad, bid, bed

 .

 문자 하나(글자, 숫자, 기호 ,공백등)가 나타남

 b.d

 bad, bzd, b$d, b d

 ^

 바로 뒤에 있는 문자 혹은 하위 표현식이 문자열의 맨 앞에 나타남

 ^a

 apple, asdf, a

 \

 특수 문자를 원래 의미대로 쓰게 하는 이스케이프 문자

 \. \| \\

 . | \

 $

 정규 표현식 마지막에 종종 쓰이며 바로 앞에 있는 문자 또는 하위 표현식이 문자열의 마지막이라는 뜻. 이 기호를 쓰지 않은 정규 표현식은 사실상 .*가 마지막에 있는 것이나 마찬가지여서 그 뒤에 무엇이 있든 전부 일치함. ^기호의 반대라고 생각해도 됨

 [A-Z]*[a-z]*$

 ABCabc, zzzyx, Bob

 ?!

 포함하지 않는다는  뜻으로 이 기호 쌍 바로 다음에 있는 문자(또는 하위 표현식)는 해당 위치에 나타나지 않음. 이 기호는 혼란스러울 수 있음. 배제한 문자가 문자열의 다른 부분에  나타날 수 있기 때문. 특정문자를 완벽히 배제하려면 ^과 $를 앞뒤에 사용

 ^((?![A-Z]).)*$

no-caps-here, $ymbl)ls a4e f!ne


반응형

'IT > 개발의짜릿함' 카테고리의 다른 글

[C]문자열과 포인터  (0) 2018.04.26
SQL변수 java변수 변환(_소문자를 대문자로)  (0) 2017.12.11
[C]pointer의 이해  (0) 2017.02.24

Top