Python 정규식 예

Python Jeong Gyusig Ye



정규식의 전체 형태는 정규 표현식입니다. 이는 모든 프로그래밍 언어의 중요한 기능입니다. 문자열 값의 문자열을 일치, 검색 또는 바꾸는 데 사용되는 문자열 패턴입니다. 정규식 패턴은 Python의 're' 모듈을 사용하여 Python 스크립트에서 사용할 수 있습니다. 이 모듈에는 다양한 문자열 작업을 수행하는 다양한 유형의 함수가 있습니다. 다양한 메타 문자와 특수 시퀀스를 사용하여 작업을 검색하거나 바꾸는 정규식 패턴을 정의합니다. Python 스크립트에서 일반적으로 사용되는 메타 문자, 특수 시퀀스 및 정규식 메서드를 사용하는 목적이 이 튜토리얼에 나와 있습니다.

정규식에서 일반적으로 사용되는 일부 메타문자:









캐릭터 목적
'+' 문자열에서 특정 문자가 하나 이상 일치하는 데 사용됩니다.
'*' 문자열에서 특정 문자가 0개 이상 일치하는 데 사용됩니다.
'?' 문자열에서 특정 문자가 0개 또는 1개 발생하는 것과 일치시키는 데 사용됩니다.
'^' 문자열 시작 부분의 특정 문자나 문자열을 일치시키는 데 사용됩니다.
'$' 문자열 끝의 특정 문자나 문자열을 일치시키는 데 사용됩니다.
'|' 문자열의 여러 문자열을 일치시키는 데 사용됩니다. OR 논리처럼 작동합니다.
'[]' 다양한 문자를 일치시키는 데 사용됩니다.
'{}' 특정 수의 문자를 일치시키는 데 사용됩니다.



정규식에서 일반적으로 사용되는 특수 시퀀스는 다음과 같습니다.





시퀀스 목적
'\ㅏ' 문자열 시작 부분의 특정 문자를 일치시키는 데 사용됩니다. '^' 문자처럼 작동합니다.
'\b', '\B' '\b'는 문자열의 시작이나 끝 부분에 특정 문자나 단어가 포함된 문자열을 일치시키는 데 사용됩니다. “\B”는 “\b”와 반대되는 의미를 갖습니다.
'\디', '\디' '\d'는 '[0-9]'와 유사한 문자열의 10진수를 일치시키는 데 사용됩니다. '\D'는 '\d'와 반대되는 의미를 갖습니다.
'\봄 여름 시즌' '\s'는 '[\n\t\r\v]'와 유사한 문자열의 공백을 일치시키는 데 사용됩니다. '\S'는 '\s'와 반대되는 의미를 갖습니다.
'\W w' '\w'는 문자열의 영문자와 숫자를 일치시키는 데 사용됩니다. “\W”는 “\w”와 반대되는 의미를 갖습니다.
'\와 함께' 문자열 끝의 특정 문자를 일치시키는 데 사용됩니다. '$' 문자처럼 작동합니다.

예제 1: Match() 함수를 사용하여 문자열 일치

match() 함수는 문자열 시작 부분의 정규식 패턴을 일치시키는 데 사용됩니다. 이 함수의 구문은 다음과 같습니다.



통사론:

재경기 ( 패턴, 문자열, 깃발 = 0 )

여기서 첫 번째 인수는 정규식 패턴을 정의하는 데 사용됩니다. 두 번째 인수는 기본 문자열을 정의하는 데 사용됩니다. 세 번째 인수는 선택 사항이며 다양한 유형의 플래그를 정의하는 데 사용됩니다.

match() 함수를 사용하여 정의된 문자열과 정규식 패턴을 일치시키는 다음 스크립트를 사용하여 Python 파일을 만듭니다. 먼저 정의된 정규식 패턴을 사용하여 일치시킵니다. 다음으로 사용자로부터 검색어를 가져와 문자열 값과 일치시키는 정규식 패턴으로 사용합니다. 일치하는 항목이 있으면 검색어가 인쇄됩니다. 그렇지 않으면 '일치하는 값이 없습니다.' 문자열이 인쇄됩니다.

#필요한 모듈 가져오기
다시 가져오기

#일치하는 결과를 출력하는 함수 정의
def matchString ( ) :
# match() 함수의 반환 값을 확인합니다.
만약에 와 함께 ! = 없음:
인쇄 ( ''' + 매트그룹 ( ) + ''는 ''에서 발견됩니다. + 문자열값 + ''' )
또 다른:
인쇄 ( '일치하는 값을 찾을 수 없습니다.' )

#문자열 값 정의
str값 = '선입선출.'
#패턴을 기준으로 문자열 일치
매트 = 재매치 ( '^먼저' , str값 )
# 일치 결과를 인쇄하는 함수 호출
일치 문자열 ( )

#검색 문자열 가져오기
inValue = 입력 ( '검색값을 입력하세요: ' )
매트 = 재매치 ( inValue + , strValue )
# 일치 결과를 인쇄하는 함수 호출
일치 문자열 ( )

'첫 번째' 입력 값에 대해 다음 출력이 나타납니다.

예제 2: Findall() 함수를 사용하여 문자열 찾기

findall() 함수는 기본 문자열에서 발견된 일치하는 모든 단어를 튜플로 반환하는 데 사용됩니다.

통사론:

re.findall ( 패턴, 문자열, 깃발 = 0 )

여기서 첫 번째 인수는 정규식 패턴을 정의하는 데 사용됩니다. 두 번째 인수는 기본 문자열을 정의하는 데 사용됩니다. 세 번째 인수는 선택 사항이며 다양한 유형의 플래그를 정의하는 데 사용됩니다.

사용자로부터 기본 문자열 값과 검색 문자열 값을 가져오는 다음 스크립트를 사용하여 Python 파일을 만듭니다. 그런 다음 정규식 패턴의 검색어를 사용하여 기본 문자열에서 검색어를 찾습니다. 총 일치 항목 수가 출력에 인쇄됩니다.

#필요한 모듈 가져오기
다시 가져오기

#문자열 값을 가져옵니다
inValue = 입력 ( '문자열을 입력하세요: ' )

#검색어를 가져가세요
src값 = 입력 ( '검색어를 입력하세요: ' )

#문자열에 있는 단어 검색
srcResult = re.findall ( src값 + '\안에*' , 가치 )
#검색결과 인쇄
인쇄 ( ''라는 단어' + 소스값 + ''는 문자열 '에서 발견됩니다.
+ str ( 오직 ( src결과 ) ) + '번.' )

출력 결과에 따르면 “We eat to live, don’t live to eat” 메인 문자열에 검색어 “eat”가 두 번 발견되었습니다.

예제 3: Search() 함수를 사용하여 문자열 검색

search()는 문자열 값에서 특정 패턴을 검색하는 또 다른 함수입니다. 여기에는 match() 및 findall() 함수와 동일한 인수가 포함됩니다. 사용자로부터 가져올 문자열 값에서 'Python'이라는 단어를 검색하는 다음 스크립트를 사용하여 Python 파일을 만듭니다. 입력값에 검색어가 존재하면 성공 메시지가 출력됩니다. 그렇지 않으면 실패 메시지가 인쇄됩니다.

#다시 모듈 가져오기
다시 가져오기

#문자열 값을 가져옵니다
inValue = 입력 ( '문자열을 입력하세요: ' )
#문자열 값에서 특정 단어를 검색합니다.
srcResult = 재검색 ( 아르 자형 '파이썬\w*' , 가치 )

#검색어가 있는지 확인하세요
만약에 src결과:
인쇄 ( ''' + srcResult.group ( ) + ''는 ''에서 발견됩니다. + 인밸류 + ''' )
또 다른:
인쇄 ( '검색 문자열을 찾을 수 없습니다.' )

산출:

입력 문자열이 'I like Python 프로그래밍'인 경우 다음 출력이 나타납니다.

입력 문자열이 “I like PHP 프로그래밍”인 경우 다음 출력이 나타납니다.

예제 4: Sub() 함수를 사용하여 문자열 바꾸기

sub() 함수는 패턴을 기반으로 특정 문자열을 검색하고 이를 다른 단어로 바꾸는 데 사용됩니다. 이 함수의 구문은 다음과 같습니다.

통사론:

다시 서브 ( 패턴, 교체_문자열, 메인_문자열 )

이 함수의 첫 번째 인수에는 기본 문자열에서 특정 문자열을 검색하는 데 사용되는 패턴이 포함되어 있습니다.

이 함수의 두 번째 인수에는 '교체' 문자열 값이 포함됩니다.

이 함수의 세 번째 인수에는 기본 문자열이 포함됩니다.

이 함수는 첫 번째 인수를 기준으로 기본 문자열에 일치하는 단어가 있는 경우 대체된 문자열을 반환합니다.

문자열 끝에서 두 자리를 검색하는 다음 스크립트를 사용하여 Python 파일을 만듭니다. 문자열 끝에 두 자리 숫자가 포함되어 있으면 해당 숫자는 '$50' 문자열로 대체됩니다.

#다시 모듈 가져오기
다시 가져오기

#메인 문자열 정의
str값 = '책값은 70이에요'

#검색 패턴 정의
패턴 = '[0-9]{2}'

#교체 값 정의
교체값 = '$50'

#패턴을 기반으로 문자열을 검색하고 교체합니다.
수정된_strValue = re.sub ( 패턴, 교체값, strValue )
#원래 문자열 값과 수정된 문자열 값을 인쇄합니다.
인쇄 ( '원래 문자열: ' + str값 )
인쇄 ( '수정된 문자열: ' + 수정된_str값 )

산출:

메인 스트링 끝에는 70 개가있었습니다. 따라서 대체된 문자열에서 70은 $50로 대체됩니다.

예제 5: Subn() 함수를 사용하여 문자열 바꾸기

subn() 함수는 첫 번째 인덱스에 대체된 값이 포함되고 두 번째 인덱스에 총 일치 항목 수가 포함되는 튜플로 출력을 반환한다는 점을 제외하면 sub() 함수와 유사하게 작동합니다.

subn() 함수를 사용하여 'LinuxHint.com' 문자열에서 알파벳 A부터 L까지 검색하는 다음 스크립트로 Python 파일을 만듭니다.

#다시 모듈 가져오기
다시 가져오기

#메인 문자열 정의
str값 = 'LinuxHint.com'

#검색 패턴 정의
패턴 = '[로]'

#교체 값 정의
교체값 = '*'

#패턴을 기반으로 문자열을 검색하고 교체합니다.
수정된_strValue = re.subn ( 패턴, 교체값, strValue )
#원래 문자열과 subn()의 출력을 인쇄합니다.
인쇄 ( '원래 문자열: \N ' + str값 )
인쇄 ( 'subn() 함수의 출력: ' )
인쇄 ( 수정된_str값 )

산출:

다음 출력에 따르면 'L' 및 'H' 문자는 '*' 문자로 대체됩니다.

예제 6: Split() 함수를 사용하여 문자열 분할

정규식 패턴에 따라 기본 문자열을 여러 부분으로 나누기 위해 분할() 함수를 사용한 다음 스크립트를 사용하여 Python 파일을 만듭니다.

#다시 모듈 가져오기
다시 가져오기

#문자열 값 정의
strVal= '루파 악터, 니라 초두리, 마자룰 이슬람'
#데이터를 분할하는 데 사용할 패턴을 정의합니다.
패턴 = '[^A-Za-z ]'
#분할된 값을 목록에 저장
Split_result = 다시 분할 ( 패턴, strVal )
인쇄 ( 'split() 함수의 출력:' )
인쇄 ( 분할_결과 )

산출:

출력 결과에 따르면 스크립트에서 사용하는 “[^A-Za-z ]” 패턴을 기준으로 메인 문자열이 세 부분으로 나누어집니다.

결론

문자열을 검색하고 바꾸고 분할하기 위해 가장 일반적으로 사용되는 메타 문자, 범위 및 Python 내장 함수의 목적은 간단한 Python 스크립트를 사용하여 이 튜토리얼에 표시됩니다.