Maison >développement back-end >tutoriel php >phpmaster | Pratiquer des expressions régulières avec la recherche et remplacer

phpmaster | Pratiquer des expressions régulières avec la recherche et remplacer

Lisa Kudrow
Lisa Kudroworiginal
2025-03-02 08:38:09530parcourir

Expressions régulières: la pratique rend parfaite - Recherche et remplacer les exercices

Cet article fournit des exercices pratiques pour améliorer vos compétences d'expression régulière (regex) en utilisant les fonctionnalités de recherche et de remplacement trouvées dans la plupart des éditeurs de texte et des IDE. Nous utiliserons un exemple d'extrait de code de navigation pour illustrer les concepts clés.

phpmaster | Practicing Regular Expressions with Search and Replace

Concepts clés:

  • Pratique au-delà du code: La pratique regex ne se limite pas au codage. Les outils de recherche et de remplacement offrent un moyen pratique de perfectionner vos compétences.
  • Limites des mots (b): La séquence b assure une correspondance entièrement par mot, empêchant les remplacements involontaires dans des mots plus grands.
  • GROUPEMENT ET DES FAIRS: Parenthèses () Créer des groupes, capturer du texte correspondant à réutiliser en utilisant des références comme , , etc. (Remarque: Certains éditeurs peuvent utiliser 1, 2 à la place).
  • Groupements multiples: Les groupes multiples permettent des remplacements complexes, tels que l'ajout d'attributs ou les éléments d'emballage avec des balises.

Exercice 1: limites des mots

Commençons par cet exemple de code de navigation HTML:

<div> id="navigation">
 <a> href="https://www.php.cn/link/f5532381792b4aafeb9e52a68bf568de" title="All About Divebombs"></a>Divebombs>  |  
 <a> href="https://www.php.cn/link/0f0c4533ced2a79ab18a4bb3b6d1bb67" title="All About Endives"></a>Endives>  |  
 <a> href="https://www.php.cn/link/f07bdaf0e636773c9932fa54a952bb50" title="Indivisible by Zero"></a>Indivisible Numbers>  |  
 <a> href="https://www.php.cn/link/b555da9b21a5a45577bb2bfb58bcfea0" title="All About Division"></a>Divison>  |  
 <a> href="https://www.php.cn/link/ff2fd343aadac082034cc28e08000f82" title="All About Skydiving"></a>Skydiving>  |  
</div>

Notre objectif est de remplacer <div> par <code> <code><ul></ul> sans affecter des mots contenant "div" (comme "divebomb"). Utilisez ce qui suit:

  • Recherche: bdivb
  • Remplacer: ul

Ceci utilise les limites des mots (b) pour cibler uniquement les mots entiers "div".

Exercice 2: Groupement et back-références

Maintenant, refactorons les balises d'ancrage en éléments de liste ( <code><li> ). Notre code (après l'exercice 1) ressemble à ceci:


    id="navigation">
href="https://www.php.cn/link/f5532381792b4aafeb9e52a68bf568de" title="All About Divebombs">Divebombs>  |   href="https://www.php.cn/link/0f0c4533ced2a79ab18a4bb3b6d1bb67" title="All About Endives">Endives>  |   href="https://www.php.cn/link/f07bdaf0e636773c9932fa54a952bb50" title="Indivisible by Zero">Indivisible Numbers>  |   href="https://www.php.cn/link/b555da9b21a5a45577bb2bfb58bcfea0" title="All About Division">Divison>  |   href="https://www.php.cn/link/ff2fd343aadac082034cc28e08000f82" title="All About Skydiving">Skydiving>  |  

Utilisez le regroupement et les références pour envelopper chaque balise <a></a> dans les balises <code><li> :

  • Recherche: (<a.>)</a.>
  • Remplacer: <code><li> $ 1

Exercice 3: groupes et attributs multiples

class Améliorons les éléments de liste avec les attributs id et id. Nous allons extraire le premier mot du texte de lien comme le

.
  • Recherche: (<a.>)([a-zA-Z] )</a.>
  • Remplacer: <li class="navEntry" id=""> <li class="Naventry" id="$ 2"> $ 1 </li>

<a></a> Ceci utilise deux groupes: la balise entière

et le premier mot du texte de lien.

Exercice 4: Nettoyage

Enfin, retirez les espaces supplémentaires et les symboles de tuyaux:
  • Recherche: s |s
  • Remplacer: (laisser vide)

Résultat: Votre code devrait maintenant être une liste bien structurée et non ordonnée:

<div> id="navigation">
 <a> href="https://www.php.cn/link/f5532381792b4aafeb9e52a68bf568de" title="All About Divebombs"></a>Divebombs>  |  
 <a> href="https://www.php.cn/link/0f0c4533ced2a79ab18a4bb3b6d1bb67" title="All About Endives"></a>Endives>  |  
 <a> href="https://www.php.cn/link/f07bdaf0e636773c9932fa54a952bb50" title="Indivisible by Zero"></a>Indivisible Numbers>  |  
 <a> href="https://www.php.cn/link/b555da9b21a5a45577bb2bfb58bcfea0" title="All About Division"></a>Divison>  |  
 <a> href="https://www.php.cn/link/ff2fd343aadac082034cc28e08000f82" title="All About Skydiving"></a>Skydiving>  |  
</div>

N'oubliez pas de consulter la documentation de votre éditeur de texte pour une syntaxe regex spécifique si nécessaire. Pratiquez ces exercices, expérimentez des variations et vous améliorerez rapidement vos compétences regex!

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:
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
Article précédent:phpmaster | Localisation des applications PHP Partie 1: octobre 2011 - SitePointArticle suivant:phpmaster | Localisation des applications PHP Partie 1: octobre 2011 - SitePoint

Articles Liés

Voir plus