Maison > outils de développement > VSCode > le corps du texte

5 conseils d'expression régulière faciles à apprendre dans VSCode

青灯夜游
Libérer: 2021-02-03 18:51:36
avant
3176 Les gens l'ont consulté

5 conseils d'expression régulière faciles à apprendre dans VSCode

Recommandations associées : "Tutoriel vscode"

Avez-vous toujours voulu apprendre les expressions régulières, mais avez-vous été rejeté en raison de sa complexité ? Dans cet article, je vais vous montrer cinq astuces régulières faciles à apprendre que vous pouvez utiliser immédiatement dans votre éditeur de texte préféré.

Paramètres de l'éditeur de texte

Bien que presque tous les éditeurs de texte prennent désormais en charge les expressions régulières, j'utilise Visual Studio Code dans ce didacticiel, mais vous pouvez utiliser n'importe quel éditeur de votre choix. Notez également que vous devez généralement activer le commutateur RegEx quelque part à proximité de la zone de saisie de recherche. Voici comment procéder dans VSCode :

5 conseils d'expression régulière faciles à apprendre dans VSCode

Vous devez activer RegEx en cochant cette option

1 ) .  — Correspond à n'importe quel personnage

Commençons. Le symbole de point . est utilisé pour correspondre à n'importe quel caractère :

b.t
Copier après la connexion

5 conseils dexpression régulière faciles à apprendre dans VSCode

Le match régulier ci-dessus correspond à "bot", `"bat" et à tout ce qui commence par b et se termine avec t mots de trois caractères. Mais si vous souhaitez rechercher le symbole point, vous devez l'échapper avec , donc l'expression régulière suivante ne correspondra qu'au texte exact "b.t" :

b\.t
Copier après la connexion

5 conseils dexpression régulière faciles à apprendre dans VSCode

2) .* — Correspond à n'importe quoi

Ici, . signifie "n'importe quel caractère" , * signifie "ce symbole répète le précédent un contenu un certain nombre de fois. " Les assembler (.*) signifie " n'importe quel symbole répété un certain nombre de fois. " Par exemple, vous pouvez l'utiliser pour rechercher des correspondances qui commencent ou se terminent. avec un élément de texte. Disons que nous avons une méthode javascript comme celle-ci :

loadScript(scriptName: string, pathToFile: string)
Copier après la connexion

Nous voulons trouver tous les appels à cette méthode où pathToFile pointe vers n'importe quel fichier du dossier “lua”. L'expression régulière suivante peut être utilisée :

loadScript.*lua
Copier après la connexion

Cela signifie "correspond à toutes les chaînes qui commencent par "loadScript" et se terminent par "lua"

< 🎜". >

5 conseils dexpression régulière faciles à apprendre dans VSCode

3)

— Correspondance non gourmande ?

suivie du symbole

et de quelques autres règles de correspondance signifie "le moins possible " correspondre". Dans l'image précédente, chaque correspondance recevra la chaîne .* deux fois, et tout ne correspondra qu'à la seconde ?. Si vous souhaitez faire correspondre la première occurrence de "lua", vous pouvez utiliser l'expression régulière suivante : "lua"

loadScript.*?lua
Copier après la connexion
"lua" Cela signifie que "

" correspond à tout ce qui commence par

suivi de n'importe quel caractère jusqu'à la première fois. Occurrences de "loadScript""lua"

5 conseils dexpression régulière faciles à apprendre dans VSCode

 : correspond à tout ce qui commence par loadScript jusqu'à la première occurrence de "lua"

loadScript.*?lua

4 ) `( ) ### — Capture de groupes et de références arrière

D'accord, nous pouvons maintenant faire correspondre du texte, mais que se passe-t-il si nous voulons modifier une partie du texte que nous avons trouvé ? Nous devons utiliser la capture ? group.

Supposons que nous modifiions la méthode

et que nous devions maintenant insérer un autre paramètre entre ses deux paramètres d'origine. Nommons ce nouveau paramètre

Le nouveau prototype de fonction devrait maintenant ressembler à ceci : loadScript. Nous ne pouvons pas utiliser la fonction de remplacement régulier de l'éditeur de texte ici, mais les expressions régulières peuvent nous aider >Avec l'image ci-dessus, vous pouvez voir le résultat de l'exécution de l'expression régulière suivante : id

loadScript\(.*?,.*?\)
Copier après la connexion
loadScript(scriptName,id,pathToFile)This. signifie :

" correspond à tout ce qui commence par

, suivi de tout ce qui va jusqu'au premier 5 conseils dexpression régulière faciles à apprendre dans VSCode et ensuite de tout ce qui va jusqu'au premier

"

La seule chose qui pourrait paraître bizarre à you est le symbole . Ils sont utilisés pour marquer les crochets Escape "loadScript(",Parce que les symboles ) et sont des caractères spéciaux que les expressions régulières utilisent pour capturer des parties de texte, mais nous devons faire correspondre. caractères entre parenthèses réels, ils doivent être échappés 🎜>

在前面的表达式中,我们使用.*?符号定义了方法调用的两个参数。要使每个参数作为单独的捕获组,需要在它们的前后分别添加()符号:

loadScript\((.*?),(.*?)\)
Copier après la connexion
Copier après la connexion

如果你运行这段正则,你将看到没有任何变化。这是因为它匹配的是相同的文本。但现在我们可以将第一个参数称为\$1,将第二个参数称为\$2。这称为反向引用,它将帮助我们做自己想要的事情:在两个参数中间添加另一个参数:

搜索输入:

loadScript\((.*?),(.*?)\)
Copier après la connexion
Copier après la connexion

这与之前的正则相同,但分别将参数映射到倒了捕获组1和2。

替换输入:

loadScript($1,id,$2)
Copier après la connexion

这意味着“用文本"loadScript("、捕获组1、"id"、捕获组2和 ) 替换每个匹配的文本 ”。请注意,你不需要在替换输入中转义括号。

5 conseils dexpression régulière faciles à apprendre dans VSCode

5) [ ]  —  字符类

你可以在 [ ] 符号内来列出要在特定位置匹配的字符。例如,[0-9]匹配从0到9的所有数字。你还可以明确列出所有数字:[0123456789] —— 与前面的含义相同。你也可以使用带字母的破折号,[a-z] 将匹配所有小写拉丁字符,[A-Z] 将匹配所有大写拉丁字符,[a-zA-Z] 将会匹配两者。

你也可以在字符类之后使用 *,就像在 . 之后一样,在这种情况下意味着:“匹配此类中任意数量的字符”

5 conseils dexpression régulière faciles à apprendre dans VSCode

后记

你应该知道有几种正则表达式的写法。我在这里讨论的是 javascript RegEx 引擎。大多数现代引擎都很相似,但也可能会存在一些差异。通常这些差异包括转义字符和反向引用标记。

你现在就可以打开文本编辑器,立即开始使用其中的一些技巧。你将看到可以比以前更快地完成许多重构任务。一旦你掌握了这些技巧,就可以开始研究更多的正则表达式了。

英文原文地址:https://medium.freecodecamp.org/simple-regex-tricks-for-beginners-3acb3fa257cb

译文地址:https://segmentfault.com/a/1190000019171886?utm_source=sf-related

更多编程相关知识,请访问:编程学习!!

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:segmentfault.com
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!