반응형
파이썬 정규 표현식에서 사용되는 주요 메타 문자에 대한 예제는 다음과 같습니다:
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
모듈을 사용하여 이러한 패턴을 문자열에서 검색하거나 조작할 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] re.match() 사용하기 (전화번호) (0) | 2024.07.21 |
---|---|
[ Python ] 정규 표현식에서 패턴 수량자에 대해서 알아보기 (0) | 2024.07.21 |
[ Python ] 정규 표현식의 기본 구성 요소 (0) | 2024.07.20 |
[ Python ] 정규 표현식에 플래그 (flag) 사용하기 (1) | 2024.07.10 |
[ Python ] 정규 표현식을 컴파일 해서 사용하자. (0) | 2024.07.10 |