반응형
파이썬 정규 표현식에서 패턴 수량자는 특정 패턴이 반복되는 횟수를 지정하는 데 사용됩니다. 각 수량자에 대한 예제를 통해 그 사용 방법을 자세히 알아보겠습니다.
1. *
(Asterisk)
앞의 문자가 0번 이상 반복됨을 의미합니다.
import re
pattern = r"ab*c"
string = "ac abc abbc abbbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['ac', 'abc', 'abbc', 'abbbc']
2. +
(Plus)
앞의 문자가 1번 이상 반복됨을 의미합니다.
import re
pattern = r"ab+c"
string = "ac abc abbc abbbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['abc', 'abbc', 'abbbc']
3. ?
(Question Mark)
앞의 문자가 0번 또는 1번 나타남을 의미합니다.
import re
pattern = r"ab?c"
string = "ac abc abbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['ac', 'abc']
4. {n}
(Exactly n times)
앞의 문자가 정확히 n번 반복됨을 의미합니다.
import re
pattern = r"ab{2}c"
string = "abc abbc abbbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['abbc']
5. {n,}
(At least n times)
앞의 문자가 n번 이상 반복됨을 의미합니다.
import re
pattern = r"ab{2,}c"
string = "abc abbc abbbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['abbc', 'abbbc']
6. {n,m}
(Between n and m times)
앞의 문자가 n번 이상 m번 이하 반복됨을 의미합니다.
import re
pattern = r"ab{2,3}c"
string = "abc abbc abbbc abbbbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['abbc', 'abbbc']
7. *?
(Non-Greedy Asterisk)
앞의 문자가 0번 이상 반복되지만, 가능한 한 적게 반복됨을 의미합니다.
import re
pattern = r"a.*?c"
string = "ac abc abbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['ac', 'abc', 'abbc']
8. +?
(Non-Greedy Plus)
앞의 문자가 1번 이상 반복되지만, 가능한 한 적게 반복됨을 의미합니다.
import re
pattern = r"a*?.+?c"
string = "ac abc abbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['ac', 'abc', 'abbc']
9. ??
(Non-Greedy Question Mark)
앞의 문자가 0번 또는 1번 반복되지만, 가능한 한 적게 반복됨을 의미합니다.
import re
pattern = r"ab??c"
string = "ac abc abbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['ac', 'abc']
10. {n,m}?
(Non-Greedy Braces)
앞의 문자가 n번 이상 m번 이하 반복되지만, 가능한 한 적게 반복됨을 의미합니다.
import re
pattern = r"ab{2,3}?c"
string = "abc abbc abbbc abbbbc"
matches = re.findall(pattern, string)
print(matches) # Output: ['abbc', 'abbbc']
이 예제들은 정규 표현식에서 다양한 패턴 수량자가 어떻게 사용되는지를 보여줍니다. 파이썬의 re
모듈을 사용하여 이러한 패턴을 문자열에서 검색하거나 조작할 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] re.search() 사용하기 (이름 찾기) (0) | 2024.07.21 |
---|---|
[ Python ] re.match() 사용하기 (전화번호) (0) | 2024.07.21 |
[ Python ] 정규 표현식의 모든 메타 문자의 사용 예제 (1) | 2024.07.21 |
[ Python ] 정규 표현식의 기본 구성 요소 (0) | 2024.07.20 |
[ Python ] 정규 표현식에 플래그 (flag) 사용하기 (1) | 2024.07.10 |