Maison  >  Article  >  développement back-end  >  Comment utiliser des expressions régulières Python pour faire correspondre des chaînes mixtes chinoises et anglaises

Comment utiliser des expressions régulières Python pour faire correspondre des chaînes mixtes chinoises et anglaises

WBOY
WBOYoriginal
2023-06-22 16:51:032402parcourir

L'expression régulière est un puissant outil de traitement de texte qui peut nous aider à faire correspondre et remplacer rapidement des chaînes. Dans le cas d'une correspondance de chaînes mixtes en chinois et en anglais, l'utilisation d'expressions régulières est particulièrement importante. Cet article explique comment utiliser les expressions régulières Python pour faire correspondre des chaînes mixtes chinoises et anglaises.

1. Problèmes d'encodage de chaînes

Avant de faire correspondre des chaînes mixtes chinoises et anglaises, vous devez d'abord comprendre les problèmes d'encodage de chaînes. Dans la version Python 3.x, les chaînes utilisent le codage Unicode par défaut, ce qui signifie qu'un caractère est généralement représenté par un codage Unicode en Python.

Dans les applications pratiques, pour des raisons historiques et des limitations techniques, nous rencontrons souvent des chaînes d'autres types de codage. Par exemple, le codage de chaîne utilisé dans l’environnement chinois est généralement GBK ou UTF-8. Afin de gérer correctement les chaînes de codages différents, les chaînes doivent être converties en un codage unifié avant d'utiliser des expressions régulières.

En Python, vous pouvez utiliser la méthode encode() pour convertir une chaîne en chaîne d'octets avec un encodage spécifié, par exemple :

str = "中文字符串"
encoded_str = str.encode('utf-8')

2. #🎜 🎜#

Lorsque vous utilisez des expressions régulières pour faire correspondre des chaînes mixtes chinoises et anglaises, vous devez maîtriser une syntaxe de base des expressions régulières.

    Character class[]
Les crochets peuvent correspondre à n'importe quel caractère, par exemple :

[abc]  匹配字符a或b或c
[a-z]  匹配小写字母a~z中的任意一个字符
[A-Z]  匹配大写字母A~Z中的任意一个字符
[0-9]  匹配数字0~9中的任意一个字符

# 🎜🎜#match position
  1. ^ correspond au début de la chaîne

$ correspond à la fin de la chaîne

correspond à un limite de mot

qualifier
correspond au caractère précédent zéro ou plusieurs fois
  • correspond au caractère précédent caractère Caractère une ou plusieurs fois
  •  ? Faire correspondre le caractère précédent zéro ou une fois

{n,m} Faire correspondre le caractère précédent au moins n fois et à la plupart du temps m fois

{n,} Faire correspondre le caractère précédent au moins n fois

{n} Faire correspondre le caractère précédent n fois seulement

# 🎜🎜#Caractères spéciaux

  1. . Faites correspondre n'importe quel caractère à l'exception du caractère de nouvelle ligne
caractère d'échappement, vous pouvez échapper les caractères suivants en caractères spéciaux

# 🎜 🎜#| Ou, il peut correspondre au résultat réussi de l'un des multiples modèles

() Regroupement, plusieurs modèles peuvent être combinés pour former un modèle plus complexe

#🎜 🎜#3. Combinaison pratique de chaînes mixtes chinoises et anglaises

Ensuite, nous utiliserons des exemples pour montrer comment utiliser les expressions régulières Python pour faire correspondre les chaînes mixtes chinoises et anglaises.

Faire correspondre les caractères anglais

Tout d'abord, nous devons faire correspondre les caractères anglais purs. Dans les expressions régulières, a-zA-Z signifie faire correspondre toutes les lettres majuscules et minuscules, nous n'avons donc besoin que d'utiliser [a-zA-Z]+ pour faire correspondre un ou plusieurs caractères anglais.
  1. Par exemple, si nous voulons faire correspondre les caractères anglais dans la chaîne "Hello World", nous pouvons utiliser le code suivant :
  2. import re
    
    str = "Hello World"
    pattern = '[a-zA-Z]+'
    result = re.findall(pattern, str)
    
    print(result)
Le résultat de sortie est : ["Hello ", "World" ], a réussi à faire correspondre deux mots anglais.

Match les caractères chinois

Ensuite, faisons correspondre les caractères chinois. Étant donné que la gamme de caractères chinois est relativement large, nous pouvons utiliser la plage de codage Unicode pour faire correspondre les caractères chinois. La plage de codage Unicode du chinois est u4e00-u9fa5, nous pouvons donc utiliser [u4e00-u9fa5]+ pour faire correspondre un ou plusieurs caractères chinois.
  1. Par exemple, si nous voulons faire correspondre les caractères chinois dans la chaîne "Hello World", nous pouvons utiliser le code suivant :
  2. import re
    
    str = "你好世界"
    pattern = '[u4e00-u9fa5]+'
    result = re.findall(pattern, str)
    
    print(result)
Le résultat de sortie est : ["Hello ", " monde "], a réussi à faire correspondre deux mots chinois.

Match les caractères chinois et anglais

Enfin, associons une chaîne mixte de caractères chinois et anglais. Lorsque vous faites correspondre des chaînes chinoises et anglaises, vous devez prendre en compte les caractères chinois et anglais. Par conséquent, nous pouvons combiner les modèles de caractères chinois et de caractères anglais pour former l'expression régulière suivante :
    pattern = '[a-zA-Z]+|[u4e00-u9fa5]+'
  1. Cette expression régulière utilise le symbole | pour relier deux modèles, qui peuvent correspondre à un ou plusieurs mots anglais ou Mots chinois.
Par exemple, si nous voulons faire correspondre les mots chinois et anglais dans la chaîne "Hello Hello World World", nous pouvons utiliser le code suivant :

import re

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

print(result)

Le résultat de sortie est : ["Bonjour", "Bonjour", "Monde", "世界"], a réussi à faire correspondre quatre mots chinois et anglais.

Résumé :

Ce qui précède explique comment utiliser les expressions régulières Python pour faire correspondre des chaînes mixtes chinoises et anglaises. Avec la méthode ci-dessus, nous pouvons facilement résoudre le problème de la correspondance mixte de chaînes chinoises et anglaises et effectuer un traitement de texte plus efficace et plus précis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn