Python은 정규식을 사용한 텍스트 조작을 지원하는 강력한 프로그래밍 언어입니다. 데이터 분석과 텍스트 처리가 사회 각계각층에서 더욱 보편화됨에 따라 정규식 기술을 익히는 것이 점점 더 중요한 기본 기술이 되었습니다. 이번 포스팅에서는 파이썬에서 정규식을 사용하는 방법을 배워보겠습니다.
Python에서 정규 표현식을 사용하려면 re 모듈을 가져와야 합니다. 물론 정규식을 사용하기 전에 먼저 정규식의 구문 규칙을 숙지해야 합니다. 다음은 몇 가지 기본 정규식 기호와 그 의미입니다.
기호 | 의미 |
---|---|
. | 은 개행 문자를 제외한 모든 문자와 일치합니다. |
d | 은 숫자와 일치합니다. |
D | 경기 숫자가 아닌 |
w | 문자, 숫자, 밑줄 또는 중국어 문자와 일치 |
W | 문자, 숫자, 밑줄 또는 중국어 문자를 제외한 다른 문자와 일치 |
s | 일치 모든 공백 문자, 공백, 탭, 개행 등을 포함합니다. |
S | 공백이 아닌 모든 문자와 일치합니다. |
^ | 문자열의 시작과 일치합니다. |
$ | 문자열의 끝과 일치합니다. |
* | 0회 이상 일치 |
+ | 1회 이상 일치 |
? | 0회 또는 1회 일치 |
{n} | 정확하게 일치 n번 |
{n,} | n번 이상 일치 |
{m,n} | m~n번 일치 |
[...] | 대괄호 안의 일치 문자 범위를 포함한 모든 문자, 제외된 문자 등 |
(…) | 일치하는 하위 문자열 캡처 |
(?:…) | 일치하는 하위 문자열 캡처 안 함 |
(? =...) | 양수 사전 전달 check |
(?!...) | 전방향 부정 사전 확인 |
(?<=...) | 역 긍정 사전 확인 |
(? | 역 부정 사전 검사 |
import re # 声明一个字符串 str1 = "hello world" # 定义正则表达式 pattern = "hello world" # 使用 re 模块进行匹配 result = re.search(pattern, str1) print(result.group())
출력 결과:
hello world
특수 문자를 검색해야 하는 경우 문자를 사용하려면 정규식에 이스케이프 문자()를 추가해야 합니다. 예:
# 定义正则表达式 pattern = r"w+($" # 使用 re 模块进行匹配 result = re.search(pattern, "I have a list (item1, item2).") print(result.group())
출력:
list(
# 定义正则表达式 pattern = r"https?://S+.w+(?<!/)$" # 使用 re 模块进行匹配 result = re.search(pattern, "Here is a link: https://www.google.com.") print(result.group())
을 포함하는 URL 검색:
https://www.google.com
# 定义正则表达式 pattern = r"w+@w+.w{2,3}" # 使用 re 模块进行匹配 result = re.findall(pattern, "Please contact me at alice@gmail.com or bob@hotmail.com") print(result)
경우에 따라 여러 개 일치해야 하는 경우가 있습니다. 텍스트의 하위 문자열. 이 경우 findall 함수를 사용할 수 있습니다. 예를 들어 문자열에서 모든 이메일 주소를 찾으려는 경우 코드는 다음과 같습니다.
['alice@gmail.com', 'bob@hotmail.com']
# 定义正则表达式 pattern = r"d" # 使用 re 模块进行匹配和替换 result = re.sub(pattern, "*", "12345678") print(result)
정규식을 사용하여 Python에서 문자열을 바꿀 수도 있습니다. 예를 들어 문자열의 모든 숫자를 * 기호로 바꾸려면 코드는 다음과 같습니다.
********
위 내용은 Python에서 정규식을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!