Latest web development tutorials

Expressions régulières - Exemples

Les expressions simples

La forme la plus simple d'une expression régulière qui correspond à son propre caractère unique ordinaire dans la chaîne de recherche. Par exemple, le mode à un seul caractère, comme A, que ce soit dans la chaîne de recherche où il correspond toujours à la lettre A. Ce qui suit est un exemple d'un modèle d'expression régulière de certains des caractères simples:

/a/
/7/
/M/

Il peut être combiné ensemble pour former un seul caractère de beaucoup de grandes expressions. Par exemple, l'expression régulière suivante est une combinaison d'expressions à caractère unique: a, 7 et M.

/a7M/

Notez qu'aucun opérateur de concaténation. Il suffit de taper un autre personnage derrière un personnage.

matchs de caractères

Dot (.) Correspond à la chaîne dans une variété d'impression et de non-impression des caractères, une seule exception de caractère. L'exception est le caractère de nouvelle ligne (\ n). L'expression régulière suivante correspond à aac, abc, acc, adc, etc., ainsi que a1c, a2c, ac, et un # c:

/a.c/

Pour faire correspondre une chaîne contenant le nom du fichier, et la période (.) Est une partie intégrante de la chaîne d'entrée, en face de l'expression régulière dans la période plus le caractère backslash (\). Pour illustrer, l'expression régulière suivante correspond à filename.ext:

/filename\.ext/

Ces expressions ne vous permettent de faire correspondre "tout" caractère unique. La liste peut être nécessaire de faire correspondre le jeu de caractères spécifique. Par exemple, vous pouvez trouver les titres des chapitres avec des chiffres (chapitre 1, chapitre 2, et ainsi de suite).

Les expressions entre parenthèses

Pour créer une liste de correspondant groupe de caractères, entre crochets ([et]) placer un ou plusieurs caractères individuels à l'intérieur. Lorsque le caractère entre crochets, la liste appelée "expression de support." Comme dans tout autre endroit, les caractères ordinaires représentent eux-mêmes entre crochets, qui est, elle correspond à l'un des siens dans le texte d'entrée. Perdre leur sens lorsque vous apparaissez dans l'expression du support plupart des caractères spéciaux. Mais il y a quelques exceptions, telles que:

  • Si le caractère] est le premier, il est à la fin d'une liste. Pour faire correspondre le caractère liste], mettre en première place, suivi au début de [l'arrière.
  • \ Caractère continue d'être un caractère d'échappement. Pour faire correspondre le caractère \, utilisez \\.

Enfermé dans un match d'expression entre crochets seulement un caractère dans une expression régulière dans un seul caractère à cette position. L'expression régulière suivante correspondant du chapitre 1, chapitre 2, chapitre 3, chapitre 4 et chapitre 5:

/Chapter [12345]/

S'il vous plaît noter que l'emplacement de l'espace après le mot chapitre et en ce qui concerne le caractère entre les crochets sont fixés. expression de support spécifie correspond seulement une position de caractère unique, immédiatement après le mot chapitre et l'espace derrière le jeu de caractères. Ceci est la neuvième position de caractère.

Pour utiliser une plage à la place des personnages eux-mêmes pour représenter correspondant jeu de caractères, utilisez un trait d'union (-) dans la gamme du caractère de début et de caractère de fin séparément. valeur de caractères pour déterminer l'ordre relatif des caractères individuels dans la gamme. L'expression régulière suivante contient une expression de gamme, l'expression est équivalente à la plage indiquée ci-dessus dans la liste des parenthèses.

/Chapter [1-5]/

Lorsqu'il est utilisé de cette manière spécifiée plage, à la fois le début et les valeurs d'extrémité sont incluses dans le périmètre. Remarque Il est également important, selon l'ordre de tri Unicode, la valeur doit débuter à la fin des valeurs précédentes.

Pour inclure dans la tranche d'expression tiret, utilisez l'une des méthodes suivantes:

  • Avec le backslash échapper:
    [\-]
  • Le trait d'union au début ou à la fin de la liste entre parenthèses. Les expressions suivantes correspondent à toutes les lettres et les tirets minuscules:
    [-a-z]
    [a-z-]
    
  • Créer une gamme, dans cette gamme, la valeur de départ est inférieur au caractère trait d'union et le caractère de fin est égal ou supérieur au trait d'union. Les deux expressions régulières suivantes répondent à cette exigence:
    [!--]
    [!-~]
    

Pour trouver une liste ou non dans le cadre de tous les caractères, définissez le caret (^) au début de la liste. Si un autre emplacement dans la liste pour insérer des caractères apparaissent, puis il se correspond. L'expression régulière suivante correspond à tout caractère, 4 ou 5 chiffres et au-delà:

/Chapter [^12345]/

Dans l'exemple ci-dessus, l'expression correspond à tous les 3, 4 ou 5 chiffres et des caractères autres que dans la neuvième place. Ainsi, par exemple, le chapitre 7 est un match, le chapitre 9 est un match.

L'expression ci-dessus peut utiliser un trait d'union (-) pour indiquer:

/Chapter [^1-5]/

Une utilisation typique d'une expression entre crochets est de spécifier des lettres majuscules ou minuscules ou tout nombre de matches. L'expression suivante spécifie un tel match:

/[A-Za-z0-9]/

Remplacements et groupement

Remplacer l'utilisation | caractère pour permettre la communication entre deux ou plusieurs alternatives à choisir. Par exemple, les titres de chapitre peuvent être étendues des expressions régulières pour retourner une gamme plus large que le titre du chapitre correspondant. Cependant, ce n'est pas aussi simple que vous pourriez penser. Remplacer match caractère | expression maximale d'un côté.

Vous pourriez penser que l'expression suivante correspond apparaît au début et à la fin de la ligne, suivi d'un ou deux chiffres du chapitre ou de la section:

/^Chapter|Section [1-9][0-9]{0,1}$/

Malheureusement, l'expression régulière ci-dessus des lignes soit le mot premier chapitre, ou à la fin de la ligne correspondant au mot section et tous les numéros ultérieurs correspondant. Si la chaîne d'entrée est le chapitre 22, alors l'expression ci-dessus correspond seulement le mot Chapitre. Si la chaîne d'entrée est l'article 22, l'expression correspond à l'article 22.

Pour rendre les expressions régulières sont plus faciles à contrôler, vous pouvez utiliser des parenthèses pour limiter la portée de remplacement, à savoir, faire en sorte qu'elle ne concerne que les deux mots Chapitre et à la Section. Cependant, les parenthèses sont utilisées pour créer une sous-expression, et peut-être de les capturer pour une utilisation ultérieure, qui est décrit dans la section sur les références inverses. Par les expressions régulières ci-dessus pour ajouter lieu entre parenthèses, il peut faire l'expression régulière Chapitre 1 ou Section 3 correspondant.

L'expression régulière suivante utilise entre parenthèses pour regrouper le chapitre et la section, afin de fonctionner correctement l'expression:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

Bien que ces expressions fonctionnent, mais le chapitre | Section des crochets autour va attraper l'un des deux mots dans un match pour une utilisation ultérieure. Puisque l'expression ci-dessus est seulement un ensemble de parenthèses, de sorte que seulement capturé un "sous-matches."

Dans l'exemple ci-dessus, il vous suffit d'utiliser des parenthèses pour sélectionner une combinaison de mots entre le chapitre et la section. Pour éviter les matchs à enregistrer pour une utilisation future, avant le modèle d'expression régulière est placé entre parenthèses?:. La modification suivante fournit la même capacité sans enregistrer les matchs de l'enfant:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

En outre :? caractère Exon, les deux autres sont des métacaractères non-capture créent quelque chose appelé correspondance "d'anticipation". utilisation d'anticipation Forward? = spécifiée, elle correspond entre parenthèses correspondent au modèle d'expression régulière du point de la chaîne de recherche de départ. Inverser l'utilisation d'anticipation ?! spécifiée, elle correspond au modèle d'expression régulière ne correspond pas à la chaîne de recherche chaîne commençant.

Par exemple, supposons que vous avez un document qui contient des liens vers Windows 3.1, Windows 95, Windows 98 et Windows NT références de. Supposons en outre que vous avez besoin de mettre à jour le document pointera vers Windows 95, Windows 98 et Windows NT toutes les références modifiées pour Windows 2000. L'expression régulière suivante (ce qui est le premier exemple d'une prédiction vers l'avant) correspond Windows 95, Windows 98 et Windows NT:

/Windows(?=95 |98 |NT )/

Trouver un match, le match sera immédiatement chercher le prochain match au texte (non compris les caractères lookahead) après. Par exemple, si l'expression ci-dessus correspond Windows 98, sera plutôt continuer la recherche après 98 après Windows.

D'autres exemples

Voici quelques exemples d'expressions régulières:

正则表达式 描述
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置。
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径。
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置。
/[-a-z]/ a至z共26个字母再加一个-号。
/ter\b/ 可匹配chapter,而不能匹配terminal。
/\Bapt/ 可匹配chapter,而不能匹配aptitude。
/Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ 匹配 HTML 标记。