> 백엔드 개발 > 파이썬 튜토리얼 > Python 정규식을 사용하여 중국어와 영어 혼합 문자열을 일치시키는 방법

Python 정규식을 사용하여 중국어와 영어 혼합 문자열을 일치시키는 방법

WBOY
풀어 주다: 2023-06-22 16:51:03
원래의
2454명이 탐색했습니다.

정규식은 문자열을 빠르게 일치시키고 바꾸는 데 도움이 되는 강력한 텍스트 처리 도구입니다. 중국어와 영어가 혼합된 문자열 일치 시나리오에서는 정규식의 사용이 특히 중요합니다. 이 기사에서는 Python 정규식을 사용하여 중국어와 영어 혼합 문자열을 일치시키는 방법을 소개합니다.

1. 문자열 인코딩 문제

중국어와 영어 혼합 문자열을 매칭하기 전에 먼저 문자열 인코딩 문제를 이해해야 합니다. Python 3.x 버전에서 문자열은 기본적으로 유니코드 인코딩을 사용합니다. 즉, 문자는 일반적으로 Python에서 유니코드 인코딩으로 표현됩니다.

실제 응용 프로그램에서는 역사적인 이유와 기술적 한계로 인해 종종 다른 인코딩 유형의 문자열을 접하게 됩니다. 예를 들어, 중국어 환경에서 사용되는 문자열 인코딩은 일반적으로 GBK 또는 UTF-8입니다. 다양한 인코딩의 문자열을 올바르게 처리하려면 정규식을 사용하기 전에 문자열을 통합 인코딩으로 변환해야 합니다.

Python에서는 encode() 메서드를 사용하여 문자열을 지정된 인코딩을 사용하는 바이트 문자열로 변환할 수 있습니다. 예:

str = "中文字符串"
encoded_str = str.encode('utf-8')
로그인 후 복사

2. 기본 정규식 구문

정규식을 사용하여 중국어와 영어 혼합 문자열 일치 이렇게 하려면 몇 가지 기본 정규식 구문을 숙지해야 합니다.

  1. 문자 클래스[]

대괄호는 모든 문자와 일치할 수 있습니다. 예:

[abc]  匹配字符a或b或c
[a-z]  匹配小写字母a~z中的任意一个字符
[A-Z]  匹配大写字母A~Z中的任意一个字符
[0-9]  匹配数字0~9中的任意一个字符
로그인 후 복사
  1. 위치 일치

^ 문자열의 시작과 일치

$ 문자열의 끝과 일치

일치 한 단어 경계

  1. 한정자
  • 이전 문자를 0회 이상 일치
  • 이전 문자를 1회 이상 일치

? 이전 문자를 0회 또는 1회 일치

{n,m} 일치 일치 이전 문자를 n회 이상, 최대 m회

{n,} 이전 문자를 n회 이상 일치

{n} 이전 문자를 n회만 일치

  1. 특수 문자

. 개행 문자보다 모든 문자

이스케이프 문자는 다음 문자를 특수 문자로 이스케이프할 수 있습니다.

| 또는 여러 패턴 중 하나의 성공적인 결과와 일치할 수 있습니다.

() 그룹화, 여러 패턴을 결합할 수 있으며 더 복잡한 형태를 형성할 수 있습니다. 패턴

3. 중국어와 영어 혼합 문자열의 실용적인 조합

다음으로 Python 정규식을 사용하여 중국어와 영어 혼합 문자열을 일치시키는 방법을 예제를 사용하여 설명하겠습니다.

  1. 영문자 일치

먼저 순수 영문자의 대소문자를 일치시켜야 합니다. 정규식에서 a-zA-Z는 모든 대문자와 소문자를 일치시키는 것을 의미하므로 하나 이상의 영어 문자를 일치시키려면 [a-zA-Z]+만 사용하면 됩니다.

예를 들어 문자열 "Hello World"에서 영어 문자를 일치시키려면 다음 코드를 사용할 수 있습니다.

import re

str = "Hello World"
pattern = '[a-zA-Z]+'
result = re.findall(pattern, str)

print(result)
로그인 후 복사

출력 결과는 ["Hello", "World"]이며 두 영어 단어를 성공적으로 일치시킵니다. .

  1. 한자 매칭

다음으로 한자 매칭을 해보겠습니다. 한자의 범위가 상대적으로 넓기 때문에 유니코드 인코딩 범위를 사용하여 한자를 일치시킬 수 있습니다. 중국어의 유니코드 인코딩 범위는 u4e00-u9fa5이므로 [u4e00-u9fa5]+를 사용하여 하나 이상의 중국어 문자와 일치시킬 수 있습니다.

예를 들어 문자열 "Hello World"에서 한자를 일치시키려면 다음 코드를 사용할 수 있습니다.

import re

str = "你好世界"
pattern = '[u4e00-u9fa5]+'
result = re.findall(pattern, str)

print(result)
로그인 후 복사

출력 결과는 ["Hello", "World"]이며 두 중국어 단어를 성공적으로 일치시킵니다. .

  1. 중국어와 영어 문자 일치

마지막으로 중국어와 영어 문자의 혼합 문자열을 일치시켜 보겠습니다. 중국어와 영어 문자열을 일치시킬 때 중국어와 영어 문자를 모두 고려해야 합니다. 따라서 한자와 영어 문자의 패턴을 결합하여 다음 정규식을 구성할 수 있습니다.

pattern = '[a-zA-Z]+|[u4e00-u9fa5]+'
로그인 후 복사

이 정규식은 | 기호를 사용하여 두 패턴을 연결하며, 이는 하나 이상의 영어 단어 또는 중국어 단어와 일치할 수 있습니다.

예를 들어 "Hello Hello World 世界" 문자열에서 중국어와 영어 단어를 일치시키려면 다음 코드를 사용할 수 있습니다.

import re

str = "Hello 你好 World 世界"
pattern = '[a-zA-Z]+|[u4e00-u9fa5]+'
result = re.findall(pattern, str)

print(result)
로그인 후 복사

출력 결과는 다음과 같습니다: ["Hello", "Hello", "World ", "세계"], 중국어 및 영어 단어 4개를 성공적으로 일치시켰습니다.

요약:

위는 Python 정규식을 사용하여 중국어와 영어 혼합 문자열을 일치시키는 방법입니다. 위의 방법을 사용하면 중국어와 영어가 혼합된 문자열 매칭 문제를 쉽게 해결할 수 있으며, 보다 효율적이고 정확한 텍스트 처리를 수행할 수 있습니다.

위 내용은 Python 정규식을 사용하여 중국어와 영어 혼합 문자열을 일치시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿