Première introduction aux expressions régulières Python
L'expression régulière est une séquence de caractères spéciale utilisée pour déterminer si une chaîne correspond à la séquence de caractères que nous avons définie, c'est-à-dire pour vérifier si une chaîne correspond à un certain modèle.
Python a ajouté le module re depuis la version 1.5, qui fournit des modèles d'expressions régulières de style Perl. Le module re apporte toutes les fonctionnalités d'expression régulière au langage Python.
Ce qui suit est une introduction étape par étape aux expressions régulières à travers des exemples.
Par exemple, pour savoir si une chaîne contient un ou plusieurs caractères, nous utilisons généralement des fonctions intégrées pour y parvenir, comme suit :
# 设定一个常量 a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU' # 判断是否有 “两点水” 这个字符串,使用 PY 自带函数 print('是否含有“两点水”这个字符串:{0}'.format(a.index('两点水') > -1)) print('是否含有“两点水”这个字符串:{0}'.format('两点水' in a))
Les résultats de sortie sont les suivants :
是否含有“两点水”这个字符串:True 是否含有“两点水”这个字符串:True
Et si nous utiliser des expressions régulières ?
Comme mentionné tout à l'heure, Python nous fournit le module re pour implémenter toutes les fonctions des expressions régulières, utilisons donc d'abord l'une des fonctions :
re.findall(pattern, string[, flags])
Cette fonction implémente la recherche de l'expression régulière correspondante dans une chaîne Toutes les sous-chaînes sont formées dans une liste et renvoyé. L'opération spécifique est la suivante :
import re # 设定一个常量 a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU' # 正则表达式 findall = re.findall('两点水', a) print(findall) if len(findall) > 0: print('a 含有“两点水”这个字符串') else: print('a 不含有“两点水”这个字符串')
Résultat de sortie :
['两点水'] a 含有“两点水”这个字符串
Comme le montre le résultat de sortie, la même fonction que la fonction intégrée peut être obtenue, mais une chose doit être soulignée. ici, l'exemple ci-dessus est juste pour faciliter notre compréhension des expressions régulières. La façon dont cette expression régulière est écrite n'a aucun sens. Pourquoi dis-tu cela ?
Étant donné que le problème peut être résolu à l’aide des fonctions intégrées de Python, nous n’avons pas besoin d’utiliser des expressions régulières, ce qui est inutile. De plus, le paramètre d'expression régulière dans l'exemple ci-dessus devient une constante et non une règle d'expression régulière. L'âme des expressions régulières réside dans les règles, cela n'a donc pas beaucoup de sens.
Alors comment écrire les règles des expressions régulières ? Ne vous inquiétez pas, procédons étape par étape. Commençons par une chose simple : trouvons toutes les lettres minuscules de la chaîne. Tout d'abord, nous écrivons les règles d'expression régulière dans le premier paramètre de la fonction findall, où [a-z] correspond à toutes les lettres minuscules, et le deuxième paramètre n'a besoin que de remplir la chaîne à faire correspondre. Les détails sont les suivants :
import re # 设定一个常量 a = '两点水|twowater|liangdianshui|草根程序员|ReadingWithU' # 选择 a 里面的所有小写英文字母 re_findall = re.findall('[a-z]', a) print(re_findall)
Le résultat de sortie :
['t', 'w', 'o', 'w', 'a', 't', 'e', 'r', 'l', 'i', 'a', 'n', 'g', 'd', 'i', 'a', 'n', 's', 'h', 'u', 'i', 'e', 'a', 'd', 'i', 'n', 'g', 'i', 't', 'h']
De cette façon, nous obtenons toutes les lettres minuscules de la chaîne.