본문 바로가기

언어/Python

[ Python ] 정규 표현식의 모든 메타 문자의 사용 예제

반응형

파이썬 정규 표현식에서 사용되는 주요 메타 문자에 대한 예제는 다음과 같습니다:

1. . (Dot)

개행 문자를 제외한 모든 단일 문자와 일치합니다.

import re

pattern = r"a.b"
string = "acb aab a_b"
matches = re.findall(pattern, string)
print(matches)  # Output: ['acb', 'aab', 'a_b']

2. ^ (Caret)

문자열의 시작을 의미합니다.

import re

pattern = r"^Hello"
string = "Hello world"
match = re.match(pattern, string)
print(match)  # Output: <re.Match object; span=(0, 5), match='Hello'>

3. $ (Dollar)

문자열의 끝을 의미합니다.

import re

pattern = r"world$"
string = "Hello world"
match = re.search(pattern, string)
print(match)  # Output: <re.Match object; span=(6, 11), match='world'>

4. * (Asterisk)

앞의 문자가 0번 이상 반복됨을 의미합니다.

import re

pattern = r"ab*c"
string = "ac abc abbc"
matches = re.findall(pattern, string)
print(matches)  # Output: ['ac', 'abc', 'abbc']

5. + (Plus)

앞의 문자가 1번 이상 반복됨을 의미합니다.

import re

pattern = r"ab+c"
string = "ac abc abbc"
matches = re.findall(pattern, string)
print(matches)  # Output: ['abc', 'abbc']

6. ? (Question Mark)

앞의 문자가 0번 또는 1번 나타남을 의미합니다.

import re

pattern = r"ab?c"
string = "ac abc abbc"
matches = re.findall(pattern, string)
print(matches)  # Output: ['ac', 'abc']

7. {} (Braces)

특정 횟수만큼 반복됨을 의미합니다.

import re

pattern = r"ab{2}c"
string = "abc abbc abbbc"
matches = re.findall(pattern, string)
print(matches)  # Output: ['abbc']

8. [] (Square Brackets)

문자 클래스 (character class) 정의

import re

pattern = r"[a-c]"
string = "abc def ghi"
matches = re.findall(pattern, string)
print(matches)  # Output: ['a', 'b', 'c']

9. | (Pipe)

OR 연산자, 두 패턴 중 하나와 일치

import re

pattern = r"cat|dog"
string = "I have a cat and a dog."
matches = re.findall(pattern, string)
print(matches)  # Output: ['cat', 'dog']

10. () (Parentheses)

그룹화, 그룹을 만들어 부분 일치를 검출하고 캡처함

import re

pattern = r"(ab)+"
string = "ab abab ab"
matches = re.findall(pattern, string)
print(matches)  # Output: ['ab', 'ab']

11. \d (Digit)

숫자와 일치 ([0-9]와 동일)

import re

pattern = r"\d+"
string = "There are 123 apples and 45 bananas."
matches = re.findall(pattern, string)
print(matches)  # Output: ['123', '45']

12. \D (Non-Digit)

숫자가 아닌 문자와 일치 ([^0-9]와 동일)

import re

pattern = r"\D+"
string = "123 apples"
matches = re.findall(pattern, string)
print(matches)  # Output: [' apples']

13. \w (Word Character)

단어 문자와 일치 (영문자, 숫자, 밑줄 포함) ([a-zA-Z0-9_]와 동일)

import re

pattern = r"\w+"
string = "Hello, world_123!"
matches = re.findall(pattern, string)
print(matches)  # Output: ['Hello', 'world_123']

14. \W (Non-Word Character)

단어 문자가 아닌 문자와 일치 ([^a-zA-Z0-9_]와 동일)

import re

pattern = r"\W+"
string = "Hello, world_123!"
matches = re.findall(pattern, string)
print(matches)  # Output: [', ', '!']

15. \s (Whitespace)

공백 문자와 일치 (공백, 탭, 줄바꿈 등)

import re

pattern = r"\s+"
string = "Hello world!"
matches = re.findall(pattern, string)
print(matches)  # Output: [' ']

16. \S (Non-Whitespace)

공백 문자가 아닌 문자와 일치

import re

pattern = r"\S+"
string = "Hello world!"
matches = re.findall(pattern, string)
print(matches)  # Output: ['Hello', 'world!']

17. \b (Word Boundary)

단어 경계와 일치

import re

pattern = r"\bword\b"
string = "A word in a sentence."
matches = re.findall(pattern, string)
print(matches)  # Output: ['word']

18. \B (Non-Word Boundary)

단어 경계가 아닌 위치와 일치

import re

pattern = r"\Bword\B"
string = "A sword in a sentence."
matches = re.findall(pattern, string)
print(matches)  # Output: ['word']

19. \ (Escape)

특수 문자를 리터럴로 인식시키기 위해 사용

import re

pattern = r"\."
string = "Match the dot."
matches = re.findall(pattern, string)
print(matches)  # Output: ['.']

이 예제들은 정규 표현식의 다양한 메타 문자가 어떻게 사용될 수 있는지를 보여줍니다. 파이썬의 re 모듈을 사용하여 이러한 패턴을 문자열에서 검색하거나 조작할 수 있습니다.

반응형