Maison interface Web js tutoriel Explication détaillée de la recherche avant et après l'expression régulière tutoriel_expression régulière

Explication détaillée de la recherche avant et après l'expression régulière tutoriel_expression régulière

Jun 28, 2017 pm 01:47 PM
查找 表达式

Cet article présente principalement la recherche avant et après le didacticiel expression régulière, et analyse les techniques de mise en œuvre et les précautions des fonctions de recherche avant et de recherche arrière en fonction de problèmes spécifiques. qui en a besoin peut se référer à

Cet article explique la recherche avant et après le didacticiel sur les expressions régulières. Partagez-le avec tout le monde pour référence, comme suit :

Remarque : Dans tous les exemples, les résultats de correspondance des expressions régulières sont inclus dans le texte source [ et ], quelques exemples seront implémentés en utilisant Java. S'il s'agit de l'utilisation d'expressions régulières dans Java lui-même, cela sera expliqué à l'endroit correspondant. Tous les exemples Java sont testés sous JDK1.6.0_13.

1. Introduction au problème

Dans une page HTML, faites correspondre le texte entre une paire de balises, par exemple en faisant correspondre les balises de la page, c'est-à-dire , < Texte entre title> et  :

Texte : bienvenue sur ma page

Expression régulière :<[Tt][Ii][Tt][Ll][Ee]>.*? Analyse : <[Tt][Ii][Tt][Ll][Ee]> signifie qu'il n'est pas sensible à la casse. Ce modèle correspond à la balise de titre et au texte entre eux, mais il l'est. pas parfait Parce que nous voulons uniquement le texte entre les balises de titre, pas les balises elles-mêmes. Pour résoudre ce problème, nous devons utiliser lookaround.

2. Recherche avant La recherche avant spécifie un modèle qui doit correspondre mais qui n'est pas renvoyé dans le résultat. La recherche avant est en fait une sous-expression qui commence par ?= et le texte à rechercher suit =.

Regardez un exemple de mise en correspondance de la partie protocolaire d'une adresse URL :

Texte : http://blog.csdn.net/mhmyqn

Expression régulière : .

+(?=:)

Résultat : [http]

://blog.csdn.net/mhmyqn

Analyse : La partie protocole dans l'adresse URL est la partie avant :, le modèle .+ correspond à n'importe quel texte, la sous-expression (?=:) correspond à :, mais le correspondant : n'apparaît pas dans le résultat. Nous utilisons ?= pour indiquer au moteur d'expression régulière que tant que : est trouvé, tout ira bien, mais il ne sera pas inclus dans le résultat final renvoyé. Si vous n'utilisez pas la correspondance directe (?=:) ici, mais utilisez (:) directement, alors le résultat de la correspondance sera http:, qui inclut :, ce qui n'est pas ce que nous voulons.

Remarque : La recherche recto et verso devant et derrière fait référence à la position relative entre le motif et le texte à rechercher. La gauche est le recto et la droite est le verso. Autrement dit, la recherche vers l'avant est : xxx(?=xxx), et la recherche vers l'arrière est (?<=xxx)xxx. La recherche vers l'arrière sera ensuite introduite.

3. Recherche arrière

L'opérateur de recherche arrière est ?<=. Cependant, toutes les implémentations d'expressions régulières ne prennent pas en charge la recherche arrière.

JavaScript

ne la prend pas en charge. Par exemple, si vous souhaitez retrouver le prix dans le texte (commençant par $, suivi d'un chiffre), le résultat ne contient pas le symbole monétaire :

Texte : catégorie1 : 136,25 $, catégorie2 : 28 $, catégorie3 : 88,60 $Expression régulière :

(?<=$)d+(.d+)?

Résultat : catégorie 1 :$ 【136,25】

,catégorie 2 :$

【28】,catégorie 3 :$

【88,60】

Analyse : (?<=$) Le modèle correspond à $,d+(.d+) ? Le modèle correspond à des nombres entiers ou décimaux. Comme le montrent les résultats, le résultat n’inclut pas le symbole monétaire, mais uniquement le prix. Que se passerait-il si nous n’utilisions pas la recherche en arrière ? Utilisez le modèle $d+(.d+)?, qui inclura $ dans le résultat. L'utilisation du modèle d+(.d+) fera également correspondre les nombres de la catégorie1(23), ce qui n'est pas ce que nous voulons. Remarque : la longueur du modèle de recherche avant est variable et ils peuvent contenir des métacaractères tels que ., *, + ; tandis que le modèle de recherche arrière ne peut être que de longueur fixe et ne peut pas contenir ,. *, + et autres métacaractères.

4. Combinez la recherche avant et la recherche arrière

Utilisez ensemble la recherche avant et la recherche arrière pour résoudre le problème précédent Problème avec le texte entre les balises HTML  :

Texte : bienvenue sur ma page

Expression régulière : (?<=<[Tt][Ii][Tt][Ll][Ee]>).*?(?=)

Résultat :<span style="color: #ff6600">【bienvenue sur ma page】</span></title> ; </head></span></p> <p>Analyse : Il ressort des résultats que le problème est parfaitement résolu. (?<=<[Tt][Ii][Tt][Ll][Ee]>) est une opération en arrière, qui correspond à <title> mais ne le consomme pas, (?=</[Tt ][Ii][Tt][Ll][Ee]>) est une opération avant qui correspond à mais ne le consomme pas. Le résultat final correspondant renvoyé contient uniquement le texte entre les balises.

5. Annulez les recherches avant et arrière

La recherche avant et la recherche arrière mentionnées précédemment sont généralement utilisées pour faire correspondre le texte, et leur but est de déterminer si la position du texte du résultat correspondant qui est renvoyé (en spécifiant quel texte doit être avant et après le résultat correspondant). Cette utilisation est appelée recherche avant et recherche avant. Il existe également une recherche avant négative et une recherche arrière négative, qui trouvent le texte qui ne correspond pas à un modèle donné.

Opérateurs de recherche avant et après :

(?=) 正向前查找
(?!) 负向前查找
(?<=) 正向后查找
(? 负向后查找

Par exemple, il y a un prix dans un morceau de texte (commençant par $ , suivi d'un chiffre) et Quantité, nous devons connaître le prix et la quantité, regardons d'abord le prix :

Texte : J'ai payé 30 $ pour 10 pommes, 15 oranges et 10 poires . J'ai économisé 5$ sur cette commande.

Expression régulière : (?<=$)d+

Résultat : J'ai payé 【30 $】 pour 10 pommes, 15 oranges et 10 poires. J'ai économisé 【5 $】 sur cette commande. >Texte : J'ai payé 30 $ pour 10 pommes, 15 oranges et 10. poires. J'ai économisé 5$ sur cette commande.

Expression régulière : b(?

Résultat :

I J'ai payé 30 $ pour 【10】 pommes,

【15】

oranges et 【10】 poires. J'ai économisé 5 $ sur cette commande.

. Analyse : (? 6. Résumé

Avec la recherche avant et arrière, vous pouvez avoir un contrôle précis sur le contenu inclus dans le résultat final de correspondance. L'opération de recherche avant et après nous permet d'utiliser des sous-expressions pour spécifier l'emplacement où l'opération de correspondance de texte se produit et d'obtenir l'effet de correspondance uniquement mais pas de consommation.

PS : Voici 2 outils d'expression régulière plus pratiques pour votre référence :

Outil de test en ligne d'expressions régulières JavaScript :

http://tools.jb51.net/regex/javascript

Outil de génération d'expressions régulières en ligne :
http://tools.jb51.net/regex/create_reg

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment désactiver Localiser mon iPhone Comment désactiver Localiser mon iPhone Nov 09, 2023 pm 02:21 PM

Que se passe-t-il lorsque vous désactivez Find My sur iPhone ? Find My iPhone vous aide à localiser un appareil perdu ou volé. Lorsqu'il est activé, Localiser mon iPhone vous permet de suivre l'emplacement de votre appareil sur une carte, d'émettre des sons et de vous aider à trouver votre appareil. Find My comprend également un verrouillage d'activation pour empêcher quiconque d'utiliser votre iPhone. Lorsque vous désactivez Localiser mon iPhone, vous perdez toutes ces fonctionnalités, ce qui peut rendre difficile la récupération d'un appareil Apple perdu. Bien que Localiser mon iPhone soit très utile, vous devez le désactiver lorsque vous souhaitez vendre, faire un don, échanger votre téléphone ou l'envoyer pour un remplacement de batterie ou tout autre service. Cela garantira que personne ne puisse accéder aux informations vous concernant

4 façons de désactiver Find My sur iPhone 4 façons de désactiver Find My sur iPhone Feb 02, 2024 pm 04:15 PM

L'application Find My d'Apple vous permet de localiser votre iPhone ou autre appareil pour éviter qu'il ne soit perdu ou oublié. Bien que Find My soit un outil utile pour suivre les appareils, vous souhaiterez peut-être le désactiver si vous êtes préoccupé par des problèmes de confidentialité, si vous ne voulez pas vider votre batterie ou pour d'autres raisons. Heureusement, il existe plusieurs façons de désactiver Find My sur iPhone, que nous expliquerons toutes dans cet article. Comment désactiver Find My sur iPhone [4 méthodes] Vous pouvez désactiver Find My sur iPhone de quatre manières. Si vous avez utilisé la méthode 1 pour désactiver Find, vous pouvez le faire à partir de l'appareil sur lequel vous souhaitez le désactiver. Pour continuer avec les méthodes 2, 3 et 4, l'iPhone que vous souhaitez éteindre Find Your Phone doit être éteint ou

Recherchez l'index d'un élément dans un tableau à l'aide de la fonction Array.IndexOf en C# Recherchez l'index d'un élément dans un tableau à l'aide de la fonction Array.IndexOf en C# Nov 18, 2023 am 09:59 AM

Utilisez la fonction Array.IndexOf en C# pour trouver l'index d'un élément dans un tableau. Dans un programme C#, lorsque nous avons besoin de trouver l'index d'un élément dans un tableau, nous pouvons utiliser la fonction Array.IndexOf. La fonction Array.IndexOf recherche l'élément spécifié dans la plage de tableau spécifiée et renvoie l'index de sa première occurrence. Si l'élément n'est pas trouvé, -1 est renvoyé. Voici un exemple de code qui montre comment utiliser la fonction Array.IndexOf pour rechercher un élément dans un tableau.

Comment vérifier le numéro de série du disque dur et l'adresse Mac Comment vérifier le numéro de série du disque dur et l'adresse Mac Feb 18, 2024 pm 07:45 PM

Les numéros de série des disques durs et les adresses MAC sont des identifiants importants dans le matériel informatique et sont très utiles dans la gestion et la maintenance des systèmes informatiques. Cet article explique comment trouver le numéro de série du disque dur et l'adresse MAC. 1. Recherchez le numéro de série du disque dur Le numéro de série du disque dur est un identifiant unique utilisé par le fabricant du disque dur pour identifier et suivre le disque dur. Dans différents systèmes d'exploitation, la méthode de recherche du numéro de série du disque dur est légèrement différente. Windows : ouvrez l'invite de commande (recherchez "cmd" dans le menu Démarrer), entrez la commande suivante et appuyez sur Entrée : wmicdisk

La fonction glob() en PHP est utilisée pour rechercher des fichiers ou des répertoires La fonction glob() en PHP est utilisée pour rechercher des fichiers ou des répertoires Nov 18, 2023 pm 06:17 PM

La fonction glob() en PHP est utilisée pour rechercher des fichiers ou des répertoires et constitue une puissante fonction d'opération de fichiers. Il peut renvoyer le chemin d'un fichier ou d'un répertoire en fonction d'une correspondance de modèle spécifiée. La syntaxe de la fonction glob() est la suivante : glob(pattern, flags) où pattern représente la chaîne de modèle à rechercher, qui peut être une expression générique, telle que *.txt (fichiers correspondants se terminant par .txt), ou un chemin de fichier spécifique. flags est un paramètre facultatif utilisé pour contrôler la fonction

Rechercher l'index de début et de fin des éléments dans un tableau non trié en C++ Rechercher l'index de début et de fin des éléments dans un tableau non trié en C++ Aug 29, 2023 am 10:17 AM

Dans ce problème, on nous donne un tableau aar[] contenant n valeurs entières non triées et une valeur entière. Notre tâche est de trouver l'index de début et de fin d'un élément dans un tableau non trié. Pour les occurrences d'un élément dans le tableau, nous renverrons "l'index de début et l'index de fin" (s'ils sont trouvés deux fois ou plus dans le tableau). "Indice unique" (si trouvé) "L'élément n'existe pas" s'il n'est pas présent dans le tableau. Prenons un exemple pour comprendre le problème, Exemple 1Input:arr[]={2,1,5,4,6,2,3},val=2Output:startingindex=0,endingindex=5 explique que l'élément 2 apparaît deux fois , La première fois apparaît à l'index = 0, la seconde

Comment trouver le numéro de série du disque dur de votre ordinateur Comment trouver le numéro de série du disque dur de votre ordinateur Feb 20, 2024 am 10:33 AM

Comment vérifier le numéro de série d'un disque dur d'ordinateur Avec le développement de la technologie informatique, les disques durs d'ordinateur sont devenus un élément indispensable de nos vies. Qu'il s'agisse de stocker des fichiers importants ou d'installer des systèmes d'exploitation et des logiciels, vous devez compter sur le disque dur pour le terminer. Comprendre certaines informations de base sur le disque dur de l'ordinateur, telles que le numéro de série du disque dur, peut nous aider à mieux gérer et entretenir le système informatique. Alors, comment vérifier le numéro de série du disque dur d’un ordinateur ? Cet article présentera plusieurs méthodes courantes. Méthode 1 : utilisez l'outil de ligne de commande fourni avec le système Windows. Système Windows

Comment écrire un algorithme de recherche de hachage en Python ? Comment écrire un algorithme de recherche de hachage en Python ? Sep 21, 2023 pm 02:37 PM

Comment écrire un algorithme de recherche de hachage en Python ? L'algorithme de recherche de hachage, également connu sous le nom d'algorithme de recherche de hachage, est une méthode de recherche de données basée sur une table de hachage. Comparé aux algorithmes de recherche traditionnels tels que la recherche linéaire et la recherche binaire, l'algorithme de recherche par hachage a une efficacité de recherche plus élevée. En Python, nous pouvons utiliser un dictionnaire pour implémenter une table de hachage, puis implémenter une recherche de hachage. L'idée de base de l'algorithme de recherche de hachage est de convertir le mot-clé à rechercher en valeur d'index via une fonction de hachage, puis de le rechercher dans la table de hachage en fonction de la valeur d'index.

See all articles