소개
RegEx 모듈은 정규식을 나타냅니다. 이미 프로그래밍 작업을 했다면 이 용어를 이미 여러 번 접했을 것입니다. 우리는 정규식을 사용하여 검색하고 대체하며 다양한 텍스트 편집기, 검색 엔진, 워드 프로세서 등에서 사용됩니다.
즉, 찾고 있는 특정 패턴과 일치하도록 도와줍니다.
이에 대한 좋은 예는 콜라주 웹사이트에서 대학 메일만 사용하고 다른 확장자는 사용하지 않도록 하는 방법입니다.
시작하기
정규식 모듈은 Python에 패키지로 제공됩니다. 따로 다운받아 설치할 필요가 없습니다.
그 내용에 액세스하기 시작하려면 먼저 모듈을 가져와야 합니다. RegEx 모듈을 가져오기 위해
다시 가져오기
다양한 기능 탐색
RegEx 모듈에는 많은 기능이 포함되어 있으며 각 기능의 차이점을 이해하고 아는 것이 중요합니다.
다음은 Python 프로젝트 작업을 시작할 때 가장 확실히 사용하게 될 몇 가지 중요한 기능입니다.
예
re.compile(pattern, flags) #매칭할 패턴을 컴파일합니다.re.search(pattern, string, flags) #문자열을 통해 정확히 일치하는지 검색합니다.re.match(pattern, string, flags) # 패턴과 문자열 사이의 일치re.split(pattern, string, max, flag) # 제공된 패턴에 따라 문자열을 분할합니다.re.findall(pattern, string, flag) # patternre.finditer(pattern, string, flags) #문자열을 반복 가능한 객체로 반환합니다.re.sub(pattern, repl, string, count) #문자열을 pattern으로 대체합니다.subn(pattern, repl, string, count) #re.sub와 동일한 작업을 수행하지만 반환 튜플(string and count)re.escape(pattern) #ASCII 문자 이외의 모든 문자를 이스케이프 처리합니다.
re.compile 및 re.match 함수
"Hello world"라고 하는 문자열을 예로 들어 보겠습니다. 이제 위의 문자열이 "Hello world! 어떻게 되어가고 있나요?”
이를 위해 re.compile 및 re.match 함수를 사용합니다.
x =re.compile("Hello world")y =x.match("Hello world! 어떻게 진행되고 있습니까?")if (y):print("문자열이 일치합니다")else:print("문자열이 일치하지 않음")
출력
문자열 일치
왜 우리가 컴파일 기능을 사용하지 않고 이것을 할 수 없는지 궁금하다면, 당신이 맞습니다! 컴파일 기능을 사용하지 않고도 이 작업을 수행할 수 있습니다.
x =re.match("Hello world","Hello world! 어떻게 진행되고 있습니까?")if (y):print("문자열이 일치합니다")else:print("문자열이 일치하지 않습니다")사전>출력
문자열 일치re.split 기능
x =re.split("\W+","Hello,World")print(x)x =re.split("(\W+)","Hello,Worldprint(x)출력
['안녕하세요', '세계']['안녕하세요', ',', '세계']위의 예에서 "\W+"는 기본적으로 왼쪽에서 분할 시작을 의미하고 + 기호는 끝까지 계속 전진한다는 의미입니다. case 2와 같이 대괄호로 가릴 경우 쉼표와 같이 구두점도 분할하여 추가합니다.
re.sub 및 re.subn 기능
x =re.sub(r"there","World","안녕하세요. Python은 재미있습니다.")print(x)x =re.subn(r"there","World","안녕하세요 . 파이썬은 재미있습니다. 안녕하세요.")print(x)출력
안녕하세요. 파이썬은 재미있습니다.('Hello World. Python은 재미있습니다. Hello World', 2)위의 예에서 re.sub는 "there"라는 단어가 있는지 확인하고 "world"로 대체합니다.
subn 함수는 똑같은 일을 하지만 문자열 대신 튜플을 반환하고 수행된 총 교체 횟수도 더합니다.
실제 예시
RegEx 모듈을 사용하는 실제 응용 프로그램/예 중 하나는 암호를 확인하는 것입니다.
rematching_sequence 가져오기 =r"[0−9]"while(True):x =input("비밀번호 입력:") r =re.search(matching_sequence,x) if (r and len(x)>6 ):print(x + "는 유효한 암호입니다") else:print(x + "는 유효한 암호가 아닙니다. 암호는 7자 이상이어야 하며 숫자는 1개 이상이어야 합니다.") input("종료하려면 Enter 키를 누르십시오")사전>프로그램은 유효한 비밀번호(숫자 하나 이상과 함께 7자 이상)를 입력했는지 여부를 확인합니다.
결론
Python에 있는 RegEx 모듈의 기본 사항과 그 안에 있는 모든 다양한 기능을 배웠습니다.
RegEx 모듈에는 더 많은 기능과 용도가 있습니다. 관심이 있는 경우 공식 문서(https://docs.python.org/3/library/re.html)에서 자세한 내용을 읽을 수 있습니다.