본문 바로가기

개발 관련/etc

[regex] 정규 표현식 기호 정리

*

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

a*b*   # 일치하는 문자열 예제 : aaaaaaaa, aaabbbbb, bbbbb​

+

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

a+b+    # # 일치하는 문자열 예제 : aaaaaaaab, aaabbbbb, abbbbbb

[]

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

[A-Z]*    # 일치하는 문자열 예제 : APPLE, CAPITALS, QWERTY

()

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

(a*b)*    # 일치하는 문자열 예제 : aaabaab, abaaab, ababaaaaab

{m, n}

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

a{2, 3}b{2, 3}    # 일치하는 문자열 예제 : aabbb, aaabbbb, aabb

[^]

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

[^A-Z]*    # 일치하는 문자열 예제 : apple, lowercase, qwerty

|

|(파이프)로 분리된 문자, 문자열, 하위 표현식 중 하나가 나타남

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, $ymb0ls a4e f!ne

 

 

 

 

 

[출처] 파이썬으로 웹 크롤러 만들기(Web Scraping with Python)

'개발 관련 > etc' 카테고리의 다른 글

IntelliJ에서 java와 python 같이 사용하기  (0) 2022.08.04
아스키(ASCII)  (0) 2022.01.05
[regex] Remove text between brackets  (0) 2021.12.04
[intelliJ] 자주 쓰는 단축키  (0) 2021.10.13
아스키코드와 유니코드  (0) 2020.04.17