Maison > développement back-end > Tutoriel Python > Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

Libérer: 2023-07-25 17:17:08
avant
1606 Les gens l'ont consulté

/Introduction/

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 permet au langage Python d'avoir toutes les fonctions d'expressions régulières.

La fonction de compilation génère un objet d'expression régulière basé sur une chaîne de modèle et des paramètres d'indicateur facultatifs. Cet objet dispose d'une série de méthodes pour la correspondance et le remplacement des expressions régulières.

Le module re fournit également des fonctions qui sont exactement les mêmes que ces méthodes. Ces fonctions prennent une chaîne de modèle comme premier paramètre.


/re.match function/

re.match essaie de faire correspondre un motif à partir de la position de départ de la chaîne. Si la position de départ ne correspond pas correctement, match() renvoie. aucun. La syntaxe est la suivante :

re.match(pattern, string, flags=0)
Copier après la connexion

"pattern" correspond à l'expression régulière "string" et au flag "flags" de chaîne correspondant.

Si la correspondance réussit, la méthode re.match renvoie un objet correspondant, sinon elle renvoie Aucun.

Nous pouvons utiliser la fonction d'objet correspondant group(num) ou groups() pour obtenir l'expression correspondante.

group(num=0) 匹配的整个表达式的字符串,“group()”可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

下图是个实际例子:

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

输出结果如下图所示:

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python


/检索和替换/

Python 的re模块提供了re.sub用于替换字符串中的匹配项。语法如下所示:

re.sub(pattern, repl, string, count=0, flags=0)
Copier après la connexion

参数:

pattern : 正则中的模式字符串。

repl : 替换的字符串,也可为一个函数。

string : 要被查找替换的原始字符串。

count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

flags : 编译时用的匹配模式,数字形式。

前三个为必参数,后两个为可选参数。

下图是个实际例子:

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

输出结果如下图所示:

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python


/compile函数/

compile 函数用于编译正则表达式,供match() 和 search() 这两个函数使用。语法格式为:

re.compile(pattern[, flags])
Copier après la connexion

参数:

pattern : 一个字符串形式的正则表达式

flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

re.I 忽略大小写

  re.L représente le jeu de caractères spéciaux w, W, b, B, s, S en fonction de l'environnement actuel

re.M mode multiligne

re.S est ' ' et comprend. le caractère de nouvelle ligne Tout caractère incluant (' . 'à l'exclusion des sauts de ligne)

re.U représente le jeu de caractères spéciaux w, W, b, B, d, D, s, S et s'appuie sur la base de données d'attributs de caractères Unicode

re.

re.MatchObject : group() renvoie la chaîne correspondant à RE. Start () Retourne à la position du début correspondant

END () Renvoie la position de la position correspondante. Modificateur d'expression régulière - drapeaux facultatifs/

.

Les expressions régulières peuvent contenir des modificateurs de drapeau facultatifs pour contrôler les modèles correspondants. Le modificateur est spécifié comme indicateur facultatif. Plusieurs indicateurs peuvent être spécifiés par OU(|) au niveau du bit. Par exemple, re.I | re.M est défini sur les indicateurs I et M :

Unicode

re.I

rend la correspondance insensible à la casse

re. L

fait la reconnaissance de localisation (locale-aware) correspondant à

re.

re. re.U

Analyse les caractères selon le jeu de caractères
. Ce signe affecte

w, W, b, B.

re.


/regular expression pattern/

Les chaînes de modèles utilisent une syntaxe spéciale pour représenter une expression régulière :

Les lettres et les chiffres se représentent eux-mêmes. Les lettres et les chiffres d'un modèle d'expression régulière correspondent à la même chaîne.

La plupart des lettres et des chiffres ont des significations différentes lorsqu'ils sont précédés d'une barre oblique inverse.

Les signes de ponctuation ne correspondent à eux-mêmes que s'ils sont échappés, sinon ils représentent une signification particulière.

La barre oblique inverse elle-même doit être échappée avec une barre oblique inverse.

Étant donné que les expressions régulières contiennent généralement des barres obliques inverses, vous feriez mieux d'utiliser des chaînes brutes pour les représenter. Les éléments de motif (tels que r't', équivalent à \t) correspondent aux caractères spéciaux correspondants.

Le tableau suivant répertorie les éléments spéciaux dans la syntaxe du modèle d'expression régulière. Si vous utilisez un modèle et fournissez des arguments flags facultatifs, la signification de certains éléments du modèle changera.

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

Exemple d'expression régulière

Correspondance de caractères

Exemple

Description

python

correspond à "python".

字符类

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

/实际应用/

以猫眼电影为例。我们需要获取(电影的名字作者,上映时间)等等都可以用正则表达式来解析。

Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

分析一下,利用正则表达式提取。Une introduction aux expressions régulières et à leurs fonctions de correspondance courantes en Python

可以看到我们要的名字在一个a里面,而他们被一个div包裹着。

我们把div想象成一个盒子,可以看到div里面还有一个div 我们可以先找他上面一层的div是一个表单

再找到它的上一层的盒子div
一般来说我们找到前两层就可以找到我们要的结果。如果不对就再找几层。

分析完再实际操作一下:

pattern = re.compile(&#39;<div>.*?title="(.*?)".*?class="star">(.*?)</p>.*?releasetime">(.*?)</p>&#39;,re.S)
Copier après la connexion

    (.*?)表示我们要的内容

(.*?)

里面的主演也是我们要的这样我们就可以得到我们想要得多个数据。


/小结/

1. Les expressions régulières conviennent aux scénarios dans lesquels plusieurs données doivent être obtenues. Il peut obtenir les données souhaitées plus rapidement.

2. Cet article présente principalement les expressions régulières et leur utilisation de base. Pour une utilisation spécifique de chaque caractère, vous pouvez vous référer aux articles de la série sur les expressions régulières dans la préface. J'espère que cela pourra aider tout le monde à mieux comprendre l'utilisation des expressions régulières. .

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!

Étiquettes associées:
source:Go语言进阶学习
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal