


Comment implémenter une correspondance superposée avec des expressions régulières Python
Cet article vous apporte des connaissances pertinentes sur Python. Il présente principalement comment les expressions régulières Python implémentent la correspondance qui se chevauche. Examinons-le ensemble, j'espère qu'il sera utile à tout le monde.
【Recommandation associée : Tutoriel vidéo Python3】
Expression régulière pour implémenter une correspondance qui se chevauche
import regex string = '100101010001' str_re = '101' print(regex.findall(str_re, string, overlapped=True))
La correspondance de bibliothèques ordinaires ne peut correspondre qu'à un seul '101'.
Expressions régulières et correspondances régulières
Expressions régulières
Les expressions régulières peuvent être comprises comme des expressions permettant de filtrer des données, qui sont composées d'un nombre limité d'atomes et de métacaractères.
Atomes : Unité de base, chaque expression a au moins un atome
Les caractères ordinaires constituent les atomes | |
---|---|
Les caractères non imprimables constituent les atomes (caractères qui ne sont pas imprimés sur le station de sortie) | n Nombre D : L'opposé de ds : Correspond à tous les caractères d'espacement, tels que les espaces, les nouvelles lignes, les retraits |
Les tables atomiques constituent les atomes Un groupe d'atomes constitue un tableau, déclaré par []Les priorités des atomes dans le tableau sont égales, mais le contenu n'apparaît que dans l'ordreSi le tableau des atomes commence par ^, cela signifie négation | |
ont des significations particulières dans les expressions régulières. Les caractères | . correspondent à n'importe quel caractère, à l'exception du caractère de nouvelle ligne |
correspond à la position de départ de la chaîne
* | |
? | |
+ | |
{ j } | |
{ j , } | |
{ j , k } | |
i | j | |
( ) | |
est dans la fonction Le paramètre à la position du drapeau change de signification sans changer l'expression régulière et ajuste le résultat correspondant. | |
re.I | Ignorer la casse lors de la correspondance |
re.MCorrespondance multiligne
re.U | |
re.S | |
Correspondance régulière | |
Fonctions couramment utilisées pour la correspondance régulière : (appelez le module d'expression régulière re) |
re.search(pat, str[, flag])
: scannez la chaîne str et renvoie la position de pat (La première correspondance réussie), flag est utilisé pour contrôler la méthode de correspondance des expressions régulièresimport re
str = 'python'
pat = 'pytho[a-n]'
print(re.search(pat, str))
re.match(pat, str[, flag])
: scannez le début du string str Position, renvoie la position de pat (la première correspondance réussie), le flag est utilisé pour contrôler la méthode de correspondance des expressions régulières [S'il ne correspond pas au début, il se terminera et n'en renverra aucun]
import re str_1 = 'hello world' str_2 = 'world hello' pat = 'world' print(re.match(pat, str_1)) print(re.match(pat, str_2))
< code>re.complie(pat [, flag]) : Compilez l'expression régulière pat et renvoyez l'objet d'expression régulière
findall(str[, pos[, endpos]])
: Faire correspondre tout et renvoyer la chaîne sous forme de liste Pour toutes les sous-chaînes correspondantes [pas seulement la première fois], pos et endpos peuvent spécifier la position de départ dans la chaînere.complie(pat).findall(str)</code > : fonction de correspondance globale, fait correspondre toutes les sous-chaînes de str qui correspondent à pat, charge une liste et renvoie le résultat</p><ul><pre class='brush:php;toolbar:false;'>import re
str = "hello world hello world hello world"
pat = "hello"
print(re.complie(pat).findall(str))
print(re.complie(pat).findall(str, 5, 15))</pre><li><code>re.search(pat, str[, flag])
:扫描字符串str,返回pat的位置(第一次成功匹配的),flag用于控制正则表达式的匹配方式
import re str = "400-823-823" pat = "-" #短横改空格,最大替换次数2 str_new = re.sub(pat, " ", str, count=2)
-
re.match(pat, str[, flag])
:扫描字符串str开始的位置,返回pat的位置(第一次成功匹配的),flag用于控制正则表达式的匹配方式【若开始就不符合则结束,返回none】
-
re.complie(pat[, flag])
:编译正则表达式pat,返回正则表达式对象 -
findall(str[, pos[, endpos]])
:匹配所有,用列表返回string中所有匹配到的子串【不止第一次】,pos和endpos可指定在string中的起始位置 -
re.complie(pat).findall(str)
:全局匹配函数,匹配str中所有符合pat的子串,装入一个列表返回结果
-
re.sub(pat, repl, str[, count[, flag]])
re.sub(pat, repl, str[, count[, flag]]) code> : Remplacer les caractères Correspondances dans la chaîne [données propres], vous pouvez utiliser count pour spécifier le nombre maximum de remplacements
[Recommandations associées : Tutoriel vidéo Python3]
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

Undress AI Tool
Images de déshabillage gratuites

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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Installez PYODBC: utilisez la commande PiPInstallpyodbc pour installer la bibliothèque; 2. Connectez SQLServer: utilisez la chaîne de connexion contenant le pilote, le serveur, la base de données, l'UID / PWD ou TrustEd_Connection via la méthode pyoDBC.Connect () et prendre en charge l'authentification SQL ou l'authentification Windows respectivement; 3. Vérifiez le pilote installé: exécutez pyodbc.Drivers () et filtrez le nom du pilote contenant «SQLServer» pour vous assurer que le nom du pilote correct est utilisé tel que «ODBCDriver17 pour SQLServer»; 4. Paramètres clés de la chaîne de connexion

ShutLil.rmtree () est une fonction de Python qui supprime récursivement l'intégralité de l'arborescence du répertoire. Il peut supprimer les dossiers spécifiés et tous les contenus. 1. Utilisation de base: utilisez ShutLil.rmtree (Path) pour supprimer le répertoire, et vous devez gérer FileLenotFoundError, PermissionError et autres exceptions. 2. Application pratique: vous pouvez effacer les dossiers contenant des sous-répertoires et des fichiers en un seul clic, tels que des données temporaires ou des répertoires mis en cache. 3. Remarques: L'opération de suppression n'est pas restaurée; FilenotFoundError est lancé lorsque le chemin n'existe pas; Il peut échouer en raison d'autorisations ou d'occupation des fichiers. 4. Paramètres facultatifs: les erreurs peuvent être ignorées par ignore_errors = true

L'introduction à l'arbitrage statistique L'arbitrage statistique est une méthode commerciale qui capture l'inadéquation des prix sur le marché financier basé sur des modèles mathématiques. Sa philosophie principale découle de la régression moyenne, c'est-à-dire que les prix des actifs peuvent s'écarter des tendances à long terme à court terme, mais reviendront éventuellement à leur moyenne historique. Les traders utilisent des méthodes statistiques pour analyser la corrélation entre les actifs et rechercher des portefeuilles qui changent généralement de manière synchrone. Lorsque la relation de prix de ces actifs est anormalement déviée, des opportunités d'arbitrage se présentent. Sur le marché des crypto-monnaies, l'arbitrage statistique est particulièrement répandu, principalement en raison de l'inefficacité et des fluctuations drastiques du marché lui-même. Contrairement aux marchés financiers traditionnels, les crypto-monnaies fonctionnent 24h / 24 et leurs prix sont très susceptibles de briser les nouvelles, les sentiments des médias sociaux et les améliorations technologiques. Cette fluctuation des prix constante crée fréquemment un biais de prix et fournit aux arbitrageurs un

Installer le pilote de base de données correspondant; 2. Utilisez Connect () pour se connecter à la base de données; 3. Créez un objet de curseur; 4. Utilisez EXECUTE () ou Execumany () pour exécuter SQL et utiliser une requête paramétrée pour empêcher l'injection; 5. Utilisez fetchall (), etc. pour obtenir des résultats; 6. commit () est requis après modification; 7. Enfin, fermez la connexion ou utilisez un gestionnaire de contexte pour le gérer automatiquement; Le processus complet garantit que les opérations SQL sont sûres et efficaces.

Pour créer un environnement virtuel Python, vous pouvez utiliser le module VENV. Les étapes sont: 1. Entrez le répertoire de projet pour exécuter l'environnement Python-Mvenvenv pour créer l'environnement; 2. Utilisez SourceEnv / Bin / Activer sur Mac / Linux et Env \ Scripts \ Activate sur Windows; 3. Utilisez le package d'installation PiPinstall, PipFreeze> exigence.txt pour exporter les dépendances; 4. Veillez à éviter de soumettre l'environnement virtuel à GIT et confirmez qu'il est dans le bon environnement pendant l'installation. Les environnements virtuels peuvent isoler les dépendances du projet pour prévenir les conflits, en particulier adaptés au développement multi-projets, et les éditeurs tels que PyCharm ou VScode sont également

La façon recommandée de lire les fichiers ligne par ligne dans Python est d'utiliser WithOpen () et pour les boucles. 1. Utiliser WithOpen ('Exemple.txt', 'R', Encoding = 'UTF-8') asfile: pour assurer la fermeture sûre des fichiers; 2. Utiliser pour LineInfile: pour réaliser la lecture ligne par ligne, adaptée à la mémoire; 3. Utilisez line.strip () pour supprimer les caractères ligne par ligne et les caractères d'espace blanc; 4. Spécifiez Encoding = 'UTF-8' pour éviter les erreurs de codage; D'autres techniques incluent le fait de sauter des lignes vides, de lire N lignes avant, d'obtenir des numéros de ligne et de traitement des lignes en fonction des conditions, et toujours d'éviter l'ouverture manuelle sans fermer. Cette méthode est complète et efficace, adaptée au traitement des fichiers importants

TorunapythonscriptwithArgumentsInvscode, configurelaUnch.jsonByopeningTheRunandDebugpanel, créant le degré dethelaunch.jsonfile, etaddingthedesiredArguulesInThe "Args" ArraywithIntheConfiguration.inyourpythonscript, Useargparsysys.argvtoacce

Threading.Timer exécute les fonctions de manière asynchrone après un délai spécifié sans bloquer le thread principal et convient à la gestion des retards légers ou des tâches périodiques. ① utilisation basique: Créez un objet Timer et Call Start () pour retarder l'exécution de la fonction spécifiée; ② Annuler la tâche: appeler la méthode annulée () avant l'exécution de la tâche peut empêcher l'exécution; ③ Exécution de répétition: activer le fonctionnement périodique en encapsulant la classe Repetingtimer; ④ Remarque: chaque minuterie démarre un nouveau thread et les ressources doivent être gérées raisonnablement. Si nécessaire, appelez Annuler () pour éviter les déchets de mémoire. Lorsque le programme principal sort, vous devez prêter attention à l'influence des fils non prodigués. Il convient aux opérations retardées, au traitement du délai d'attente et à un sondage simple. C'est simple mais très pratique.
