Référence - que signifie ce regex?
Qu'est-ce que c'est?
c'est une collection de questions et réponses communes.C'est aussi un Wiki communautaire, donc tout le monde est invité à participer à son maintien.
pourquoi?
regex souffre de give me ze code type de questions et de mauvaise réponses, sans explication. Cette référence est destinée à fournir des liens vers des questions et réponses de qualité.
Quelle est la portée?
Cette référence est destinée aux langues suivantes: php , perl , javascript , python , ruby , java , .net .
cela pourrait être trop large, mais ces langues partagent la même syntaxe. Pour les fonctionnalités spécifiques, il y a la balise du langage derrière, exemple:
- Quels sont l'expression régulière de l'Équilibrage de Groupes? .net
1 réponses
Le Débordement de la Pile d'Expressions Régulières FAQ
tutoriels en ligne
Quantificateurs
- zéro ou plus:
*:gourmand ,*?:réticents ,*+:possessif - l'Un-ou-plus:
+:gourmand ,+?:réticents ,++:possessif -
?:facultatif (zéro ou un) - min/max range (all inclus):
{n,m}: entre n & m ,{n,}:n-ou-plus ,{n}:exactement n - Differences between greedy, reluctant (a. K. A. "lazy", "ungreedy") et quantificateur possessif:
- Gourmand vs Réticents vs Possessif Quantificateurs
- discussion approfondie sur les différences entre gourmands et non gourmands
- Quelle est la différence entre
{n}et{n}? - Quelqu'un peut-il m'expliquer les quantificateurs possessifs? php , perl , java , ruby "
- émulation possessive les quantificateurs .net
- Non-Débordement de Pile références: Oracle , regular-expressions.info
Classes De Caractères
- Quelle est la différence entre les crochets et les parenthèses?
-
[...]: n'importe quel personnage,[^...]: nié/tout caractère mais -
[^]correspond à l'un quelconque des caractères incluant newlines javascript -
[\w-[\d]]/[a-z-[qz]]: définir soustraction .net , xml-schema , xpath , JGSoft -
[\w&&[^\d]]: ensemble d'intersection java , ruby 1.9+ -
[[:alpha:]]:classes de caractères POSIX - pourquoi
[^\D2],[^[^0-9]2],[^2[^0-9]]obtenir des résultats différents en Java? java - Shorthand:
- chiffre:
\d: chiffre ,\D:non numérique - le Mot caractère (Lettre, chiffre, caractère de soulignement):
\w:caractère de mot ,\W:non le mot caractère - espace blanc:
\s: whitespace ,\S:non-espaces
- chiffre:
- catégories Unicode (
\p{L}, \P{L}, etc.)
Séquences D'Échappement
- blanc Horizontal:
\h:de l'espace ou tabulation ,\t:onglet - les retours à la ligne:
- Nié les espaces séquences:
\H:Non horizontale caractère d'espacement,\V:Non blanc vertical,\N: caractère d'alimentation Non linéaire pcre php5 java-8 - autres:
\v: étiquette verticale ,\e:le caractère d'évasion
ancres
-
^:début du ligne / entrée ,\b:limite des mots, et\B: limite des non-mots ,$:fin de ligne / entrée -
\A:début de l'entrée,\Z: fin de l'entrée php , perl , ruby -
\z:la fin de l'input (\Zen Python) .net , php , pcre , java , ruby , icu , SWIFT , objectif-c -
\G:début du match php , perl , ruby
(Voir aussi " Flavor-Specific Information → Java → les fonctions Matcher ")
Groupes
-
(...):groupe de capture ,(?:):groupe de non-capture -
:la référence arrière et de capture-groupe de référence,:la capture d'un groupe de référence - que signifie un sous-chat
(?i:regex)? - que signifie Le " P "dans
(?P<group_name>regexp)? -
(?>):groupe atomique ou groupe indépendant ,(?|):Direction générale réinitialiser - groupes de capture nommés:
- nom général du groupe de capture référence à
regular-expressions.info - java :
(?<groupname>regex): vue d'ensemble et les règles de nommage (Non-Débordement de Pile liens) - d'Autres langues:
(?P<groupname>regex)python ,(?<groupname>regex).net ,(?<groupname>regex)perl ,(?P<groupname>regex)et(?<groupname>regex)php
- nom général du groupe de capture référence à
Lookarounds
- Lookheads:
(?=...): positif ,(?!...):négatif - Lookbehinds:
(?<=...): positif ,(?<!...):négatif (non supporté par javascript ) - Lookbehind limits dans:
- Lookbehind alternatives:
modificateurs
- la plupart des saveurs:
g: global ,i:insensible à la casse ,u:unicode ,x:espace-étendue -
c:position actuelle perl
e:l'expression php perl
o: une fois ruby -
m:multiligne php perl python javascript .net java ,m:(Non) multiligne ruby -
s:ligne simple (non supportée par javascript ou ruby ),ssolution de contournement javascript -
S:l'étude php
U:moins gourmand php r - comment convertir preg_replace e en preg_replace_callback?
- Qu'est-ce que les modificateurs inline?
- Qu'est-ce que"?-mélanger dans un Ruby Expression Régulière
autres:
-
|: alternation (OR) operator ,.:n'importe quel personnage ,[.]:caractère point littéral - quels caractères spéciaux doivent être échappés?
- verbes de contrôle ( php et perl ):
(*PRUNE),(*SKIP),(*FAIL)et(*F)- php seulement:
(*BSR_ANYCRLF)
- php seulement:
- récursion ( php et perl ):
(?R),(?0)et(?1),(?-1),(?&groupname)- Validation:
, Url (hôte/port: regex et non-regex solutions de rechange"), mots de passe- Internet: "15197310920 adresses e-mail"
- Validation:
- Numérique: un certain nombre , min-max gammes (comme 1-31) , numéros de téléphone , date
- Parsing HTML avec la regex: Voir "Informations Générales > Quand ne pas utiliser l'expression rationnelle"
Advanced Regex-Fu
- chaînes et numéros:
- Expression régulière pour correspondre à une ligne qui ne contient pas de mot?
- comment ce modèle PCRE détecte-t-il les palindromes?
- Match chaînes de caractères dont la longueur est un quatrième pouvoir
- comment ce regex trouve-t-il les nombres triangulaires?
- Comment déterminer si un nombre est une prime avec regex?
- Comment faire correspondre le caractère du milieu dans un une corde avec du regex?
- autres:
- Comment Pouvons-nous faire correspondre a^n b^n avec Java regex?
- correspond entre parenthèses
- "Verticale" de l'expression rationnelle correspondant dans la table ASCII "image"
- Liste de très haut voté regex questions sur le Code de Golf
- Comment faire pour que deux quantificateurs répètent le même nombre de fois?
- impossible de correspondance d'expression régulière:
(?!a)a - Match/supprimer/remplacer
thissauf dans des contextes A, B et C - faire correspondre les crochets imbriqués avec regex sans utiliser de groupes de récursion ou d'équilibrage?
Information Spécifique À La Saveur
(à l'exception de ceux marquée de * , cette section contient des liens Non-Stack Overflow.)
- Java
- documentation officielle: Pattern Javadoc , tutoriel D'expressions régulières D'Oracle
- les différences entre les fonctions dans
java.util.regex.Matcher:-
matches()): la correspondance doit être ancrée à la fois input-start et input-end -
find()): Un match peut être n'importe où dans la chaîne d'entrée (sous-chaînes) -
lookingAt(): Le match doit être ancré à l'entrée-début seulement - (pour les ancres en général, voir la section "ancres")
-
- les seules fonctions
java.lang.Stringqui acceptent les expressions régulières:matches(s),replaceAll(s,s),replaceFirst(s,s),split(s),split(s,i) - * (opiniâtre et) discussion détaillée des inconvénients de et les fonctionnalités manquantes dans
java.util.regex
- .NET
- documentation officielle:
- Boost moteur d'expressions régulières: syntaxe Générale , syntaxe de Perl (utilisé par TextPad, Sublime Text, UltraEdit,...???)
- JavaScript 1.5 infos générales et objet RegExp
- .NET
MySQL
Oracle
Perl5 version 18.2 - PHP: ,
preg_match - Python: opérations D'expression régulière ,
searchsmatch, how-to - Splunk: terminologie et syntaxe regex et commande regex
- Tcl: syntaxe regex , page de manuel ,
regexpla commande - Visual Studio trouver et remplacer
Informations générales
(les liens marqués avec * sont des liens de débordement autres que des piles.)
- Autres ressources de documentation: l'Apprentissage des Expressions Régulières , * Regular-expressions.info , * entrée de Wikipedia , * RexEgg , Open Directory Project
- DFA rapport de la NFA
- Génération de Chaînes de caractères qui correspondent regex
- Books: Jeffrey Friedl's Mastering Regular Expressions
- Quand pas utiliser des expressions régulières:
- certaines personnes, lorsqu'elles sont confrontées à un problème, pensent "je sais, je vais utiliser des expressions régulières."Maintenant, ils ont deux problèmes. (billet de blog écrit par Stack Overflow 's fondateur)*
- N'utilisez pas regex pour analyser HTML:
- Ne pas .
s'il vous Plaît, il suffit de ne pas - peut-être...si vous êtes vraiment déterminé (d'autres réponses à cette question sont aussi bon)
- Ne pas .
exemples de regex qui peuvent causer la défaillance du moteur de regex
Outils: les Testeurs et Explainers
(cette section contient des liens Non-Stack Overflow.)
-
en ligne (*y compris un appareil d'essai de remplacement, + y compris un appareil d'essai fractionné) :
- Debuggex (a également un dépôt de regexes utiles) javascript , python , pcre "
- * Expressions Régulières 101 php , pcre , python , javascript
- Regex Pal , regular-expressions.info javascript
- Rubular ruby
RegExr
Regex Hero dotnet - * + regexstorm.net .net
- *RegexPlanet: Java java , Go
aller , Haskell haskell , JavaScript javascript , .NET dotnet , Perl perl PHP pcre PHP , Python Python , Ruby ruby , XRegExp xregexp -
freeformatter.comxregexp - *+
regex.larsolavtorvik.comphp PCRE et POSIX, javascript - Refiddle javascript ruby .net
-
Hors ligne:
- Microsoft Windows: RegexBuddy (analyse), RegexMagic (création), Expresso (analyse, création, libre)