Comment apprendre les expressions régulières Python ?
Le module
re apporte la fonctionnalité complète des expressions régulières au langage Python. La
fonction de compilation génère un objet d'expression régulière basé sur un modèle chaîne et des arguments d'indicateur facultatifs. Cet objet dispose d'une série de méthodes pour la correspondance et le remplacement des expressions régulières.
re.match(pattern, string, flags=0) # 匹配成功返回一个匹配的对象,否则返回none
1 import re2 print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配 (0, 3)3 print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配 None
1 import re 2 line = "cats are smarter than dogs" 3 matchObj = re.match(r'(.*) are (.*?) .*', line, re.M|re.I) 4 # matchObj = re.match(r'(.*) are (.*) .*', line, re.M|re.I) # 结果也一样 5 6 if matchObj: 7 print("matchObj.group()", matchObj.group()) # cats are smarter than dogs 8 print("matchObj.group(1)", matchObj.group(1)) # cats 9 print("matchObj.group(2)", matchObj.group(2)) # smarter10 else:11 print("No match!!")
1 import re 2 line = "cats are smarter than dogs" 3 matchObj = re.match(r'(.*) are (.*?) (.*) .*', line, re.M|re.I) 4 # matchObj = re.match(r'(.*) are (.*) (.*) .*', line, re.M|re.I) #这个结果也一样 5 6 if matchObj: 7 print("matchObj.group()", matchObj.group()) # cats are smarter than dogs 8 print("matchObj.group(1)", matchObj.group(1)) # cats 9 print("matchObj.group(2)", matchObj.group(2)) # smarter10 print("matchObj.group(3)", matchObj.group(3)) # than11 else:12 print("No match!!")
Utilisez la fonction d'objet de correspondance group(num) ou groups() pour obtenir l'expression de correspondance.
groups() : renvoie un tuple contenant toutes les chaînes de groupe, de 1 au numéro de groupe contenu dans .
re.search analyse la chaîne entière et renvoie la première correspondance réussie.
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配 (0, 3)print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配 (11, 14)
1 import re2 line = "Cats are smarter than dogs";3 searchObj = re.search(r'(.*) are (.*?) .*', line, re.M | re.I)4 if searchObj:5 print("searchObj.group() : ", searchObj.group()) # Cats are smarter than dogs 6 print("searchObj.group(1) : ", searchObj.group(1)) # Cats7 print("searchObj.group(2) : ", searchObj.group(2)) # smarter8 else:9 print("Nothing found!!")
1 line = "Cats are smarter than dogs" 2 matchObj = re.match(r'dogs', line, re.M | re.I) 3 if matchObj: 4 print("match --> matchObj.group() : ", matchObj.group()) 5 else: 6 print("No match!!") 7 8 matchObj = re.search(r'dogs', line, re.M | re.I) 9 if matchObj:10 print("search --> matchObj.group() : ", matchObj.group())11 else:12 print("No match!!")13 '''14 No match!!15 search --> matchObj.group() : dogs16 '''
re.match correspond uniquement au début de la chaîne si le début de la chaîne ne correspond pas à l'expression régulière, la correspondance échoue et la fonction renvoie Aucun while re ; .search correspond à la chaîne de caractères entière jusqu'à ce qu'une correspondance soit trouvée. Le module
1 re.search(pattern, string, flags=0)2 re.sub(pattern, repl, string, count=0, flags=0)
re fournit re.sub pour remplacer les correspondances dans une chaîne.
Paramètres :
modèle : chaîne de modèle dans une expression régulière.
repl : La chaîne à remplacer, ou peut être une fonction .
string : La chaîne d'origine à rechercher et à remplacer.
count : Le nombre maximum de substitutions après la correspondance de modèles. La valeur par défaut est 0, ce qui signifie remplacer toutes les correspondances.
1 phone = "2004-959-559 # 国外电话号码"2 # 删除字符串中的Python注释3 num = re.sub(r'#.*$', "", phone)4 print("电话号码是:", num) # 电话号码是: 2004-959-559 5 6 # 删除非数字(-)的字符串7 num = re.sub(r'\D', "", phone)8 print("电话号码是:", num) # 电话号码是: 2004959559
Le paramètre repl est une fonction
1 # 将匹配的数字乘于22 def double(matched):3 value = int(matched.group('value'))4 return str(value * 2)5 6 s = 'A23G4HFD567'7 print(re.sub('(?P<value>\d+)', double, s))
re.I | Rendre la correspondance insensible à la casse | ||||||||||||
re . L | Effectuer une correspondance tenant compte des paramètres régionaux | ||||||||||||
re.M | Correspondance multiligne, affectant ^ et $ | ||||||||||||
re.S | faire correspondre tous les caractères, y compris les sauts de ligne | ||||||||||||
re .U | Analyse les caractères selon le jeu de caractères Unicode
|
||||||||||||
re Écrit pour être plus facile à comprendre. |
re.I | re.M... Plusieurs indicateurs peuvent être spécifiés via OR au niveau du bit (|).
Modèle d'expression régulière
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.
^ | 匹配字符串的开头 |
$ | 匹配字符串的末尾。 |
. | 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 |
[...] | 用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k' |
[^...] | 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。 |
re* | 匹配0个或多个的表达式。 |
re+ | 匹配1个或多个的表达式。 |
re? | 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 |
re{ n} | |
re{ n,} | 精确匹配n个前面表达式。 |
re{ n, m} | 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 |
a| b | 匹配a或b |
(re) | G匹配括号内的表达式,也表示一个组 |
(?imx) | 正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。 |
(?-imx) | 正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。 |
(?: re) | 类似 (...), 但是不表示一个组 |
(?imx: re) | 在括号中使用i, m, 或 x 可选标志 |
(?-imx: re) | 在括号中不使用i, m, 或 x 可选标志 |
(?#...) | 注释. |
(?= re) | 前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。 |
(?! re) | 前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功 |
(?> re) | 匹配的独立模式,省去回溯。 |
w | 匹配字母数字及下划线 |
W | 匹配非字母数字及下划线 |
s | 匹配任意空白字符,等价于 [tnrf]. |
S | 匹配任意非空字符 |
d | 匹配任意数字,等价于 [0-9]. |
D | 匹配任意非数字 |
A | 匹配字符串开始 |
Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。c |
z | 匹配字符串结束 |
G | 匹配最后匹配完成的位置。 |
b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'erb' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
B | 匹配非单词边界。'erB' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
n, t, 等. | 匹配一个换行符。匹配一个制表符。等 |
1...9 | 匹配第n个分组的内容。 |
10 | 匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。 |
Instance
1. Correspondance de caractères
python correspondant à "python".
Classe de caractères
[Pp]ython | 匹配 "Python" 或 "python" |
rub[ye] | 匹配 "ruby" 或 "rube" |
[aeiou] | 匹配中括号内的任意一个字母 |
[0-9] | 匹配任何数字。类似于 [0123456789] |
[a-z] | 匹配任何小写字母 |
[A-Z] | 匹配任何大写字母 |
[a-zA-Z0-9] | 匹配任何字母及数字 |
[^aeiou] | 除了aeiou字母以外的所有字符 |
[^0-9] | 匹配除了数字外的字符 |
3. Caractère spécial classe
. | 匹配除 "n" 之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用象 '[.n]' 的模式。 |
d | 匹配一个数字字符。等价于 [0-9]。 |
D | 匹配一个非数字字符。等价于 [^0-9]。 |
s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。 |
S | 匹配任何非空白字符。等价于 [^ fnrtv]。 |
w | 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 |
W | 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。 |
r indique que la chaîne est une chaîne brute sans échappement, permettant au compilateur d'ignorer les barres obliques inverses. les caractères d'échappement sont ignorés.
(.*) Le premier groupe correspondant, * signifie faire correspondre tous les caractères à l'exception des caractères de nouvelle ligne.
(.*?) Le deuxième groupe de correspondance, *? suivi de plusieurs points d'interrogation, représente le mode non gourmand, c'est-à-dire que seuls les caractères minimum qui remplissent les conditions correspondent
Le dernier .* Aucun Entouré de parenthèses, il n'est pas regroupé. L'effet de matching est le même que le premier, mais il n'est pas inclus dans le résultat du matching.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment télécharger Deepseek Xiaomi? Recherchez "Deepseek" dans le Xiaomi App Store. Identifiez vos besoins (fichiers de recherche, analyse des données) et recherchez les outils correspondants (tels que les gestionnaires de fichiers, les logiciels d'analyse des données) qui incluent les fonctions Deepseek.

La clé de l'utilisation efficace de Deepseek est de poser clairement des questions: exprimer les questions directement et spécifiquement. Fournir des détails spécifiques et des informations générales. Pour des demandes complexes, plusieurs angles et opinions de réfutations sont inclus. Concentrez-vous sur des aspects spécifiques, tels que les goulots d'étranglement des performances dans le code. Gardez une réflexion critique sur les réponses que vous obtenez et faites des jugements en fonction de votre expertise.

Utilisez simplement la fonction de recherche fournie avec Deepseek. Cependant, pour les recherches impopulaires, les dernières informations ou problèmes qui doivent être prises en compte, il est nécessaire d'ajuster les mots clés ou d'utiliser des descriptions plus spécifiques, de les combiner avec d'autres sources d'informations en temps réel et de comprendre que Deepseek n'est qu'un outil qui nécessite Stratégies de recherche actives, claires et raffinées.

Deepseek n'est pas un langage de programmation, mais un concept de recherche profonde. La mise en œuvre de Deepseek nécessite une sélection en fonction des langues existantes. Pour différents scénarios d'application, il est nécessaire de choisir la langue et les algorithmes appropriés et de combiner la technologie d'apprentissage automatique. La qualité du code, la maintenabilité et les tests sont cruciaux. Ce n'est qu'en choisissant le bon langage de programmation, les algorithmes et les bons outils en fonction de vos besoins et de l'écriture de code de haute qualité que Deepseek peut être mis en œuvre avec succès.

Question: Deepseek est-il disponible pour la comptabilité? Réponse: Non, il s'agit d'un outil d'exploration de données et d'analyse qui peut être utilisé pour analyser les données financières, mais elle n'a pas les fonctions de génération de comptabilité et de génération de rapports des logiciels comptables. L'utilisation de Deepseek pour analyser les données financières nécessite de l'écriture de code pour traiter les données avec une connaissance des structures de données, des algorithmes et des API profonds pour considérer les problèmes potentiels (par exemple, les connaissances en programmation, les courbes d'apprentissage, la qualité des données)

Explication détaillée de Deepseekapi Access and Call: Quick Start Guide Cet article vous guidera en détail comment accéder et appeler Deepseekapi, vous aidant facilement à utiliser des modèles d'IA puissants. Étape 1: Obtenez la clé de l'API pour accéder au site officiel Deepseek et cliquez sur la "plate-forme ouverte" dans le coin supérieur droit. Vous obtiendrez un certain nombre de jetons gratuits (utilisés pour mesurer l'utilisation de l'API). Dans le menu de gauche, cliquez sur "Apikeys" puis cliquez sur "Créer Apikey". Nommez votre apikey (par exemple, "test") et copiez immédiatement la clé générée. Assurez-vous d'enregistrer correctement cette clé, car elle ne sera affichée qu'une seule fois

Pinetwork est sur le point de lancer Pibank, une plate-forme bancaire mobile révolutionnaire! Pinetwork a publié aujourd'hui une mise à jour majeure sur Elmahrosa (face) Pimisrbank, appelée Pibank, qui intègre parfaitement les services bancaires traditionnels avec des fonctions de crypto-monnaie de pignon (prend en charge l'échange entre les Fiat Currency tels que le Dollar, l'Euro, Usdt, Usdc, Ripiah avec des crypto-monnaies. Quel est le charme de Pibank? Découvrons! Les principales fonctions de Pibank: gestion unique des comptes bancaires et des actifs de crypto-monnaie. Soutenez les transactions en temps réel et adoptez les biospécies

Voici quelques outils de découpage d'IA populaires : TensorFlow DataSetPyTorch DataLoaderDaskCuPyscikit-imageOpenCVKeras ImageDataGenerator
