파이썬 정규 표현식 튜토리얼
-
파이썬 정규 표현식
re.match()
함수 -
파이썬 정규 표현식
re.search()
함수 -
re.complie
를 사용하여 정규 표현식 컴파일 -
파이썬 정규 표현식
re
모듈의 플래그 - 허용되는 문자 확인
- 검색 및 교체
-
findall()
함수 -
finditer()
함수 -
split()
함수 -
re
의 기본 패턴 - 반복 사례
- 욕심없는 반복
-
re
의 특수 문자 및 시퀀스 -
escape
기능 -
group()
함수
이 튜토리얼에서는 파이썬의 re
모듈에 정의 된 정규 표현식과 정규 표현식 연산에 대해 배웁니다. re
는 정규 표현식의 매칭 연산을 지원하는 Python 의 표준 라이브러리입니다.
파이썬에서 정규 표현식은 형식적인 구문을 사용하여 문자열을 다른 패턴과 일치시키는 데 사용되는 문자 또는 시퀀스 집합입니다. 정규 표현식은 파이썬에 포함 된 작은 프로그래밍 언어로 생각할 수 있습니다.
정규식을 사용하여 일부 규칙을 정의 할 수 있으며이 규칙을 사용하여 패턴과 일치시키려는 주어진 문자열에서 가능한 문자열을 작성합니다. 파이썬의 정규 표현식은 일련의 명령어로 해석됩니다.
파이썬 정규 표현식 re.match()
함수
일치 기능을 사용하여 RE 패턴을 주어진 문자열과 일치시킬 수 있습니다. match 함수는 플래그를 포함합니다. 플래그는 정규식의 동작을 정의하며이 자습서의 뒷부분에서 볼 수있는 다른 값을 포함 할 수 있습니다.
다음은 Python 에서 match 함수의 구문입니다.
re.match(pattern, string, flags)
세 가지 주장이 있습니다.
pattern
은 매칭되는 정규식 패턴입니다.string
은 정규식과 일치하는 주어진 문자열입니다.flags
는 정규 표현식의 동작을 변경하는 데 사용되며 선택 사항입니다.
일치가 성공적으로 수행되면 match
객체가 반환되고 그렇지 않으면 None
이 반환됩니다. match 객체에는 group (num) 및 group() 함수라는 두 가지 주요 메소드가 있습니다. 이 함수를 사용하는 주요 목적은 각각 일치 또는 특정 하위 시퀀스와 모든 하위 시퀀스를 반환하는 것입니다.
‘재 일치’기능 사용
다음 예는 match
기능을 사용하는 방법을 보여줍니다.
import re
strTest = "Hello Python Programming"
mobj = re.match(r"hello", strTest, re.I)
print(mobj.group())
이 코드에서는 먼저 모든 re
모듈을 가져옵니다. 그런 다음 문자열 strTest
를 RE 패턴과 비교하고 match 함수에서 반환 된 값은 mobj
에 할당됩니다. match 함수는 re
를 사용하여 호출 된 다음 괄호 안에 첫 번째 인수는 일치시킬 패턴이며 패턴이 일치하는 지정된 문자열을 가지며 플래그 값도 전달됩니다. 여기서 ’re.I’는 IGNORECASE 를 의미하는 플래그 값이므로 패턴과 문자열의 대소 문자가 다른지 여부는 무시됩니다 (대문자 또는 소문자).
출력은 다음과 같습니다
Hello
이 예에서는 문자열이 원시 문자열임을 알려주는 접두사 r
이 사용됩니다. 원시 문자열에서는 이스케이프 시퀀스를 사용할 때 이중 슬래시를 쓸 필요가 없습니다. 예를 들어 백 슬래시를 원한다면 일반 문자열에서와 같이 단일\
이지만 이중 백 슬래시\\
는 없습니다. 이것은 일반 문자열과 원시 문자열의 유일한 차이점입니다.
정규 문자열과 함께 re.match 함수 사용
원시 문자열 대신 일반 문자열이 사용되는 아래 예를 고려하십시오.
import re
str = "\\tHello Python Programming"
mobj = re.match("\\thello", str, re.I) # no match
str = "\tHello Python Programming"
mobj = re.match("\\thello", str, re.I) # \thello is matching
파이썬 정규 표현식 re.search()
함수
re.search()
함수를 사용하여 주어진 문자열에서 RE 패턴을 검색 할 수 있습니다. search
함수에는 string
및 flags
(선택 사항)가 지정된 pattern
함수에 세 개의 인수가 있습니다.
다음은 Python 에서 검색 함수의 구문입니다.
re.search(pattern, string, flags)
다음 파이썬 코드는 search()
함수의 사용법을 보여줍니다 :
import re
str = "Hello Python Programming"
sobj = re.search(r"programming", str, re.I)
print(sobj.group())
Programming
이 코드에서 ‘프로그래밍’이라는 단어를 검색하는 중입니다. search
함수는 전체 문자열을 검색합니다. 검색과 일치의 차이점은 ‘일치’기능은 문자열의 시작 부분에서만 검사하는 반면 ‘검색’은 전체 문자열에서 검색한다는 것입니다.
re.search
를 사용하여 처음부터 검색
문자열의 시작 부분에서 검색하려면^
를 사용할 수 있습니다. 다음 예제를 고려하십시오.
import re
str = "Hello Python Programming"
sobj = re.search(r"^programming", str, re.I)
print(sobj.group()) # no match is found
sobj = re.search(r"^hello", str, re.I)
print(sobj.group()) # matching: Hello
^
는 문자열의 시작 부분에서만 검색합니다.
’re.search’를 사용하여 마지막에서 검색
주어진 문자열의 끝에서 검색 할 수도 있습니다. 패턴의 끝에서$
를 사용하여 수행 할 수 있습니다. 아래 코드를 고려하십시오.
import re
str = "Hello Python Programming"
sobj = re.search(r"programming$", str, re.I)
print(sobj.group()) # matching: Programming
sobj = re.search(r"hello$", str, re.I)
print(sobj.group()) # no match found
re.complie
를 사용하여 정규 표현식 컴파일
컴파일시 파이썬의 정규 표현식은 패턴으로 변환됩니다. 이러한 패턴은 실제로 검색, 일치 및 교체 등을 포함 할 수있는 다른 작업을 수행하기 위해 다른 기능을 포함하는 패턴 객체입니다.
패턴을 컴파일 할 때 나중에 프로그램에서 해당 패턴을 사용할 수 있습니다.
사전 컴파일 된 패턴 사용
패턴 r"\d"
가 컴파일 된 문자열의 첫 번째 숫자를 의미하고이 패턴을 사용하여 검색 기능을 호출하고 검색 기능에 문자열을 전달했습니다. 이 패턴은 검색 기능에 제공된 문자열에서 검색됩니다. 마찬가지로이 사전 컴파일 된 패턴을 다음과 같이 일치 함수와 함께 사용할 수 있습니다.
import re
compPat = re.compile(r"(\d)")
sobj = compPat.search("Lalalala 123")
print(mobj.group())
mobj = compPat.match("234Lalalala 123456789")
print(mobj.group())
1
2
파이썬 정규 표현식 re
모듈의 플래그
플래그를 사용하여 정규 표현식의 동작을 변경할 수 있습니다. 함수에서 플래그는 선택 사항입니다. flags
키워드를 사용하고 플래그 값을 지정하거나 플래그 값을 직접 작성하여 두 가지 방식으로 플래그를 사용할 수 있습니다. RE 리터럴에 둘 이상의 플래그 값을 가질 수 있습니다. 비트 OR
연산자|
를 사용하면됩니다.
일반적으로 사용되는 플래그 중 일부가 정규식 리터럴로 설명되어있는 다음 표를 고려하십시오.
깃발 가치 | 기술 |
---|---|
re.I |
이 수정자는 일치하는 동안 문자열과 패턴의 경우를 무시합니다. |
re.L |
이 수정자는 현재 로케일과 관련된 단어를 해석하는 데 사용됩니다. |
re.M |
이 수정자는$ 를 문자열의 끝이 아닌 행의 끝과 일치시키기 위해 사용됩니다. 마찬가지로^ 는 문자열의 시작이 아니라 행의 시작에서 일치합니다. |
re.S |
이 수정자는 어떤 문자와도 일치하도록 도트. 를 만드는 데 사용됩니다. 이것은 또한 개행을 포함합니다. |
re.U |
이 수정자는 문자를 유니 코드 문자 세트로 해석하는 데 사용됩니다. |
re.X |
공백을 무시하는 데 사용됩니다. # 를 주석의 표시 자로 만듭니다. |
여러 플래그 값 사용
RE 의 동작을 변경하기 위해 여러 플래그 값을 사용하는 방법을 볼 수있는 다음 Python 코드를 고려하십시오. 비트 OR(|)
연산자로 여러 플래그 값을 포함 할 수 있습니다.
import re
s = re.search("L", "Hello")
print(s) # Output: None, L is there but in small letter and we didn't use flags
s = re.search("L", "Hello", re.I)
print(s) # Output: 1
s = re.search("L", "^Hello", re.I | re.M)
print(s) # Output: 1, searching will be made from the start of line and case is ignored
허용되는 문자 확인
특정 문자열에 특정 범위의 문자가 포함되어 있는지 여부를 확인할 수도 있습니다.
함수 정의 및 허용되는 문자 확인
함수가 정의되고 사전 컴파일 된 패턴을 사용하여 특정 문자가 전달 된 문자열에 있는지 여부를 확인하는 다음 예를 고려하십시오.
import re
def check(str):
s = re.compile(r"[^A-Z]")
str = s.search(str)
return not bool(str)
print(check("HELLOPYTHON")) # Output: True
print(check("hellopython")) # Output: False
이 함수에서 r'[^A-Z]'
인 패턴이 컴파일되어 check 라는 함수가 호출 될 때 전달 된 문자열을 검색하는 데 사용됩니다. 이 함수는 전달 된 문자열에 ‘A-Z’(대문자) 문자가 포함되어 있는지 확인합니다. 마찬가지로 소문자로 문자열을 전달하면 false 가 반환되는 것을 알 수 있습니다.
검색 및 교체
re
모듈은 함수의 repl
속성을 사용하여 주어진 string
에서 pattern
의 모든 발생을 대체하는 데 사용되는 sub
함수 인 함수를 제공합니다. 문자 수에 도달 할 때까지 문자가 바뀝니다. sub
함수는 업데이트 된 문자열을 반환합니다.
다음은 하위 함수의 구문입니다.
re.sub(pattern, repl, string, count=0)
‘서브’기능 사용
sub 함수가 전체 문자열을 주어진 문자열로 대체하는 아래 예제를 고려하십시오.
import re
s = "Playing 4 hours a day"
obj = re.sub(r"^.*$", "Working", s)
print(obj)
Working
여기에는 sub
기능이 사용됩니다. r'^.*$
패턴은 문자열의 시작에서 시작하는 것을 의미하고. *
는 문자열의$
끝까지 문자열에있는 모든 것을 의미합니다. 그런 다음 인수 "Working"
은 전체 문자열 s
를 대체합니다.
sub
함수를 사용하여 문자열에서 모든 숫자를 삭제
sub
함수가 주어진 문자열에서 숫자를 삭제하는 다음 예제를 고려하십시오. 이를 위해\d
를 사용할 수 있습니다 :
import re
s = "768 Working 2343 789 five 234 656 hours 324 4646 a 345 day"
obj = re.sub(r"\d", "", s)
print(obj)
Working five hours a day
마찬가지로 문자열에서 문자를 삭제할 수 있습니다. 이를 위해\ D
를 사용할 수 있습니다.
import re
s = "768 Working 2343 789 five 234 656 hours 324 4646 a 345 day"
obj = re.sub(r"\D", "", s)
print(obj)
76823437892346563244646345
findall()
함수
findall
함수는 패턴과 일치하는 모든 문자열의 목록을 반환합니다. search
와 findall
함수의 차이점은 findall
은 모든 일치 항목을 찾고 search
는 첫 번째 일치 항목 만 찾습니다. 이 함수는 겹치지 않는 일치 항목을 찾아 문자열 목록으로 반환합니다.
다음은 findall
함수의 구문입니다.
findall(pattern, string, flags)
여기서 pattern
은 RE 패턴으로,string
값과 함께 주어진 string
에서 찾을 수 있습니다. 예를 들어 re.I
는 대소 문자를 무시합니다.
겹치지 않는 모든 일치 항목 찾기
다음 예에서 findall
은 겹치지 않는 일치 항목을 찾습니다.
import re
str = "Working 6 hours a day. Studying 4 hours a day."
mobj = re.findall(r"[0-9]", str)
print(mobj)
["6", "4"]
r '[0-9]'
는 주어진 문자열에서 모든 숫자를 찾는 패턴이며 mobj
에 저장된 문자열 목록 (숫자에 상관없이)이 반환됩니다.
파일이있는 findall
findall
을 사용하여 파일에서 찾을 수도 있습니다. 파일과 함께 findall
을 사용하면 파일에서 일치하는 모든 문자열의 목록이 반환됩니다. file 의 read() 함수가 사용되므로 파일의 전체 텍스트를 문자열로 반환하므로 루프를 사용하여 파일의 각 줄을 반복 할 필요가 없습니다. 다음 예제를 고려하십시오.
import re
file = open("asd.txt", "r")
mobj = re.findall(r"arg.", file.read())
print(mobj)
file.close()
["arg,", "arg,", "arg,", "argv", "argv", "argv"]
이 예에서 파일은 읽기 모드에서 먼저 열립니다. 패턴 ‘r’arg.‘는 파일의 내용과 일치하며 출력에 일치하는 문자열 목록이 있습니다.
finditer()
함수
finditer
함수는 문자열의 인덱스 인 일치하는 문자열의 위치와 함께 문자열에서 RE 패턴을 찾는 데 사용할 수 있습니다. 이 함수는 실제로 일치하는 문자열을 반복하고 문자열의 인덱스 또는 위치를 반환합니다.
다음은 finditer
함수의 구문입니다.
finditer(pattern, string, flags)
경기 반복
findall
과 finditer
의 유일한 차이점은 finditer
는 일치하는 문자열과 함께 색인을 리턴한다는 것입니다. 아래 코드에서 finditer
는 for 루프를 사용하여 일치하는 문자열을 반복하면서 일치하는 문자열의 위치를 찾는 데 사용됩니다.
import re
str = "Working 6 hours a day. Studying 4 hours a day."
pat = r"[0-9]"
for mobj in re.finditer(pat, str):
s = mobj.start()
e = mobj.end()
g = mobj.group()
print("{} found at location [{},{}]".format(g, s, e))
6 found at location [8,9]
4 found at location [32,33]
이 예제에서 패턴은 str
에있는 0에서 9까지의 숫자입니다. for
루프는 finditer
에 의해 반환 된 일치하는 문자열을 반복합니다. 루프에서 함수 start
,end
및 group
은 시작 색인, 종료 색인 및 finditer
에 의해 리턴 된 문자열의 각 반복에서 각각 일치하는 항목을 리턴합니다.
split()
함수
split
함수는 문자열을 분할하는 데 사용됩니다.
다음은 split 함수의 구문입니다.
split(patter, string, maxsplit, flags)
여기서 max 는 총 문자열 스플릿 수입니다. 최대 maxsplit
분할이 발생하면 나머지 문자열이 목록의 마지막 요소로 반환됩니다. max 의 기본값은 0
이며 이는 무제한 분할을 의미합니다.
문자열 나누기
split
함수는 문자열의 각 단어를 반환
아래 코드에서 문자열은 주어진 패턴과 최대 분할 수에 따라 분할됩니다.
import re
str = "Birds fly high in the sky for ever"
mobj = re.split("\s+", str, 5)
print(mobj)
["Birds", "fly", "high", "in", "the", "sky for ever"]
이 예에서 패턴 문자\ s
는 공백 문자와 일치하는 특수 문자로[ \t\n\r\f]
와 같습니다. 따라서 단어를 분리 할 수 있습니다. max 의 값은 5
이며 여기에서 6
을 분할하고 마지막 요소는 5 번째 분할 후 문자열의 나머지 부분입니다.
re
의 기본 패턴
정규식은 주어진 문자열과 비교되는 패턴을 지정할 수 있습니다. 다음은 정규 표현식의 기본 패턴입니다.
무늬 | 기술 |
---|---|
^ |
문자열의 시작 부분에서 일치하는 데 사용됩니다. |
$ |
이 패턴은 문자열의 끝에서 일치합니다. |
. |
점은 한 문자를 일치시키는 데 사용됩니다 (줄 바꿈은 포함되지 않음). |
[...] |
대괄호 안에 단일 문자를 일치시키는 데 사용됩니다. |
[^ ...] |
이것은 단일 문자와 일치하지만 대괄호는 아닙니다. |
* |
주어진 문자열에서 0 이상의 선행 re 발생. |
+ |
주어진 문자열에서 1 회 이상의 선행 re 발생. |
? |
주어진 문자열에서 0 또는 1의 선행 re 가 발생합니다. |
{n} |
주어진 문자열에서 n 개의 발생 횟수와 일치합니다. |
{n,} |
n 개 또는 n 개 이상의 발생 횟수와 일치합니다. |
{n, m} |
이 패턴은 문자열에서 최소 n 개와 최대 m 개를 일치시키는 데 사용됩니다. |
`a | b` |
(재) |
이 패턴은 정규식을 그룹화하는 데 사용되며 일치하는 텍스트를 기억합니다. |
(?imx) |
RE 에서 i 또는 m 또는 x 를 일시적으로 토글합니다. 괄호를 사용하는 경우 괄호 영역 만 영향을받습니다. |
(?-imx) |
RE 에서 i 또는 m 또는 x 를 일시적으로 끕니다. 괄호를 사용하는 경우 괄호 영역 만 영향을받습니다. |
(?: re) |
이 패턴은 정규식을 그룹화하는 데 사용되지만 일치하는 텍스트는 기억하지 않습니다. |
(?imx : re) |
괄호 안의 RE 에서 i 또는 m 또는 x 를 일시적으로 토글합니다. |
(?-imx : re) |
괄호 안의 RE 에서 i 또는 m 또는 x 를 일시적으로 해제합니다. |
(?#...) |
코멘트입니다. |
(?=re) |
패턴을 사용하여 위치를 지정하는 데 사용됩니다. 범위가 없습니다. |
(?!re) |
패턴 부정을 사용하여 위치를 지정하는 데 사용됩니다. 범위가 없습니다. |
(?>re) |
이 패턴은 독립 패턴과 일치시키는 데 사용됩니다. |
\w |
이 패턴은 단어를 일치시키는 데 사용됩니다. |
\W |
이 패턴은 비 단어를 일치시키는 데 사용됩니다. |
\s |
공백과 일치합니다. \s 는[ \t\n\r\f] 와 같습니다. |
\S |
공백이 아닌 문자와 일치합니다. |
\d |
[0-9] 와 같습니다. 문자열의 숫자와 일치합니다. |
\D |
숫자가 아닌 문자와 일치합니다. |
\A |
문자열의 시작과 일치합니다. |
\Z |
문자열의 끝과 일치합니다. 그리고 개행이 있으면 개행 전에 일치합니다. |
\G |
마지막 경기가 완료된 지점과 일치합니다. |
\b |
대괄호 밖에 있으면 단어 경계와 일치하지만 대괄호 안에 있으면 백 스페이스와 일치합니다. |
\B |
단어가 아닌 경계와 일치합니다. |
\n, \t, etc. |
\n 은 개행과 일치하는 데 사용되고\t 는 탭과 일치합니다. |
\1 ... \ 9 |
이 패턴은 n 번째 하위 표현식 (그룹화)과 일치합니다. |
\10 |
\ 10 일치하는 경우 이미 n 번째 하위 표현식 (그룹화)과 일치합니다. 일치하지 않으면 \ 10은 문자 코드의 8 진 표현을 제공합니다. |
반복 사례
다음 표는 반복 사례의 예를 설명과 함께 보여줍니다.
예 | 설명 |
---|---|
ab? |
a 또는 ab 와 일치합니다. |
ab * |
ab *는 ab 와 a 및 a 와 일치하고 b 와 일치합니다. |
ab + |
ab +는 a 뿐만 아니라 a 와 b 를 의미합니다. a 뒤에 0이 아니어야합니다. b. |
\ d {2} |
정확히 2 자리와 일치합니다. |
\ d {2,} |
2 자리 이상의 숫자와 일치합니다. |
\ d {2,4} |
숫자 2, 3 및 4와 일치합니다. |
욕심없는 반복
정규 표현식에서 반복은 기본적으로 욕심이며 가능한 많은 반복을 일치시킵니다.
*
,+
및?
와 같은 한정자는 탐욕스러운 한정자입니다. .*
를 사용하면 욕심이 일치하고 전체 문자열이 일치하여 가능한 한 많은 문자가 일치합니다. 아래 코드를 고려하십시오.
import re
mobj = re.match(r".*", "Birds fly high in sky")
print(mobj.group())
Birds fly high in the sky
여기에서 전체 문자열이 일치하는 것을 볼 수 있습니다.
. +
와 함께?
를 추가하면 탐욕스럽지 않은 re가 생기고. +?
패턴은 문자열에서 가능한 한 적은 문자와 일치합니다.
import re
mobj = re.match(r".*", "Birds fly high in sky")
print(mobj.group())
결과는 문자열의 첫 문자입니다
B
re
의 특수 문자 및 시퀀스
re
의 특수 문자는\
로 시작합니다. 예를 들어, 문자열의 시작 부분과 일치하는\ A
가 있습니다.
이러한 특수 문자는 위 표에 설명되어 있습니다.
이 섹션에서는 일부 특수 문자의 예를 보여줍니다.
import re
str = "Birds fly high in the sky"
# \A
# OUTPUT: B, here \A will match at beginning only.
mobj = re.match(r"\Ab", str, re.I)
# \d
mobj = re.match(r"\d", "4 birds are flying") # OUTPUT: 4
# \s
mobj = re.split("\s+", "birds fly high in the sky", 1) # OUTPUT: ['Birds', 'fly']
escape
기능
escape
함수는 문자열에서 모든 문자를 이스케이프하는 데 사용됩니다. ASCII 문자, 숫자 및_
는 이스케이프되지 않습니다. 이스케이프
함수는 문자열에서 메타 문자를 추출 할 때 사용됩니다.
다음은 이스케이프 함수의 구문입니다.
escape(pattern)
다음 예에서 문자열 www.python.org
은 이스케이프 함수로 전달됩니다. 여기에는 메타 문자 인.
가 있으며 추출되거나 일치합니다.
print(re.escape("www.python.org"))
www\.python\.org
.
는 추출되거나 일치하는 메타 문자입니다. 이스케이프 기능을 사용하여 메타 문자를 일치시킬 때마다 문자 앞에\
가 있습니다.
특수 문자 이스케이프
괄호[
및 ]
와 같은 문자는 일치시킬 수 없습니다. 다음 예제를 고려하십시오.
import re
mobj = re.search(r"[a]", "[a]b")
print(mobj.group())
a
여기서 대괄호[
와]
가 일치하지 않는 것을 볼 수 있습니다.
이스케이프 기능을 사용하여 일치시킬 수 있습니다.
import re
mobj = re.search(r"\[a\]", "[a]b")
print(mobj.group())
[a]b
group()
함수
group
함수는 발견 된 일치의 하나 이상의 서브 그룹을 리턴하는 데 사용됩니다. group
함수는 몇 가지 인수를 가질 수 있습니다.
그룹 함수의 구문은 다음과 같습니다.
group(group1, group2, ..., groupN)
그룹 함수에 단일 인수가있는 경우 결과는 단일 문자열이지만 둘 이상의 인수가 있으면 결과는 튜플 (인수 당 하나의 항목 포함)이됩니다.
인수가 없으면 기본적으로 인수는 0이며 전체 일치를 반환합니다.
인수 groupN
이 0이면 반환 값은 전체적으로 일치하는 문자열이됩니다.
그룹 번호 또는 인수를 음수 값 또는 패턴의 그룹 수보다 큰 값으로 지정하면 IndexError
예외가 발생합니다.
group(0)
에 해당하는 group
함수에 인수가없는 아래 코드를 고려하십시오.
import re
str = "Working 6 hours a day"
mobj = re.match(r"^.*", str)
print(mobj.group())
Working 6 hours a day
여기에 group()
이 사용되고 전체 일치하는 문자열이 있습니다.
일치하는 텍스트 부분 선택
다음 예에서 group
함수는 인수와 함께 사용하여 일치하는 그룹을 선택합니다.
import re
a = re.compile("(p(q)r)s")
b = a.match("pqrs")
print(b.group(0))
print(b.group(1))
print(b.group(2))
pqrs
pqr
q
여기서 group(0)
은 전체 일치를 반환합니다. group(1)
은 pqr
인 첫 번째 일치를 반환하고 group(2)
는 q
인 두 번째 일치를 반환합니다.
명명 된 그룹
명명 된 그룹을 사용하여 캡처 그룹을 만들 수 있습니다. 이 그룹은 이름으로 참조 될 수 있습니다. 아래 예를 고려하십시오.
import re
mobj = re.search(r"Hi (?P<name>\w+)", "Hi Roger")
print(mobj.group("name"))
Roger
비 캡처 그룹
캡처하지 않은 그룹은? :
를 사용하여 만들 수 있습니다. 비 캡처 그룹은 그룹의 내용을 원하지 않을 때 사용됩니다.
import re
mobj = re.match("(?:[pqr])+", "pqr")
print(mobj.groups())
()
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook