1. Expressions régulières des cordes
Utilisez des expressions régulières pour rechercher, extraire, segmenter, remplacer et d'autres opérations sur les chaînes. Les méthodes spéciales suivantes sont fournies dans la classe String:
Booléen Matches (String Regex): détermine si la chaîne correspond à l'expression régulière spécifiée.
String Rempaceall (String Regex, remplacement de la chaîne): Remplacez toutes les sous-chaînes correspondant à Regex dans cette chaîne par remplacement.
String [] Split (String Regex): Utilisez Regex comme séparateur pour diviser la chaîne en plusieurs sous-chaînes.
Toutes les méthodes spéciales ci-dessus reposent sur des expressions régulières fournies par Java.
2. Créez des expressions régulières
X: le caractère x (x peut représenter n'importe quel caractère juridique);
/ 0mnn: le caractère représenté par le nombre octal OMNN;
/ xhh: le personnage représenté par HexaDecimal 0xhh;
/ uhhhh: caractère Unicode représenté par HexaDecimal 0xhhhh;
/ t: tab ('/ u0009');
/ n: le caractère nouveau (ligne newline) ('/ u000a');
/ r: Caractère de retour du chariot ('/ u000d');
/ F: Page Break ('/ U000C');
/ A: Symbole d'alarme (cloche) ('/ u0007');
/ E: Escape Caractor ('/ u001b');
/ cx: le contrôleur correspondant à x. Par exemple, / cm correspond au ctrl-m. La valeur x doit être l'une des ~ z ou a ~ z;
3. Caractères spéciaux dans les expressions régulières
$: Faites correspondre la fin d'une ligne. Pour correspondre au caractère $ lui-même, utilisez / $;
^: Faites correspondre le début d'une ligne. Pour correspondre au caractère lui-même, utilisez / ^;
(): Marquez les positions de début et de fin de la sous-expression. Pour correspondre à ces caractères, utilisez / (et /);
[]: Utilisé pour déterminer les positions de début et de fin des expressions du support. Pour correspondre à ces caractères, utilisez / [et /];
{}: Utilisé pour marquer la fréquence de la sous-expression précédente. Pour correspondre à ces caractères, utilisez / {et /};
*: Spécifie que la sous-expression précédente peut se produire zéro ou plus de fois. Pour correspondre au caractère * lui-même, utilisez / *;
+: Spécifie que la sous-expression précédente peut se produire une fois ou plus. Pour correspondre au caractère + lui-même, utilisez / +;
?: Spécifie que la sous-expression précédente peut se produire zéro ou une fois. Pour correspondre au caractère lui-même, utilisez /?;
.: Faites correspondre tout caractère d'unité sauf la pause de ligne / n. Pour correspondre, le personnage lui-même, utilisez /.;
/: Utilisé pour échapper au caractère suivant, ou spécifier des caractères octaux ou hexadécimaux. Pour correspondre / caractère, utilisez //;
|: Spécifiez l'un des deux éléments. Pour correspondre au | caractère lui-même, utilisez / |;
4. Caractères prédéfinis
.: Peut correspondre à n'importe quel personnage;
/ d: correspondez à tous les nombres de 0 ~ 9;
/ D: correspond aux non-nombres;
/ s: correspondez à tous les caractères de l'espace blanc, y compris des espaces, des onglets, un retour en voiture, des pauses de page, des pauses de ligne, etc.;
/ S: correspondez à tous les caractères non-blancs;
/ w: correspondez à tous les caractères de mots, y compris tous les nombres de 0 ~ 9, 26 lettres et soulignements anglais (_);
/ W: correspondez à tous les caractères non mot;
5. Caractères correspondants aux limites
^: Le début de la ligne
$: La fin de la ligne
/ b: limites des mots
/ B: limite non mot-mot
/ A: le début de l'entrée
/ G: la fin du match précédent
/ Z: la fin de l'entrée, uniquement pour le dernier caractère final
/ z: la fin de l'entrée
6. Symboles représentant le nombre de matchs
La figure suivante montre des symboles représentant le nombre de correspondances, qui sont utilisées pour déterminer le nombre de fois où le symbole apparaît à côté de la gauche du symbole:
(1) Supposons que nous voulons rechercher le numéro de sécurité sociale américaine dans un fichier texte. Le format de ce numéro est 999-99-9999. L'expression régulière utilisée pour correspondre à elle est illustrée à la figure 1. Dans les expressions régulières, Hyphen ("-") a une signification particulière, qui représente une plage, comme de 0 à 9. Par conséquent, lorsqu'il correspond à un trait d'union dans un numéro de sécurité sociale, il doit être précédé d'un personnage d'évasion "/".
(2) Supposons que lors de la recherche, vous espérez que le trait d'union peut apparaître ou non - c'est-à-dire 999-99-9999 et 999999999999 sont tous deux dans le bon format. Pour le moment, vous pouvez ajouter le "?" Symbole de qualification de quantité après le trait d'union, comme indiqué sur la figure:
(3) Jetons un coup d'œil à un autre exemple ci-dessous. Un format pour les plaques d'immatriculation de voiture américaine est quatre numéros plus deux lettres. Son expression régulière est précédée par la partie numérique "[0-9] {4}" et la pièce de lettre "[az] {2}". La figure suivante montre l'expression régulière complète.
7. Quelques exemples 1
fonction remplace (contenu) {var reg = '// [(// w +) //]', motif = new regexp (reg, 'g'); return content.replace (patron, '<img src = "img / $ 1.png">');} // ou function remphier (contenu) {return content.replace (// [(/ w +) // g, '<img src = "img / $ 1.png">');};Exemple 2
// zéro-largeth regarde derrière une solution alternative // (? <= ...) et (? <! ...) // Méthode 1: inverser la chaîne, rechercher avec lookahead, la remplacer, puis la rembobiner, par exemple: string.prototype.reverse = function () {return this.split (''). Reverse (). 'foo.bar | baz'.replace (/ (? <= /.) B /,' C ') Remplacez immédiatement B par'. ' Devant cela avec c'foo.bar | baz'.reverse (). remplacer (/ b (? = /.) / g, 'C'). Reverse () //foo.car|baz//method 2: ne pas utiliser la largeur zéro, juger par vous-même // simuler 'foo.bar | baz'.replace (/? Devant à c'foo.bar | baz'.replace (/ (/.)? b /, fonction (0 0, 1 1) {return $ 1? $ 1 + 'c': 0;}) //foo.car|baz//simulate 'foo.bar | baz'.replace (/ (? '.bar | baz'.replace (/ (/.)? b /, fonction (0 0, $ 1) {return $ 1? $ 0:' c ';}) //foo.bar|caz//this méthode est utile dans certains scénarios relativement simples et peut être utilisé avec lookead // Cependant, il existe de nombreux scénarios, tels que: //'tttt'.replace(/(?<=t)t/g, 'x') Le résultat devrait être 'txxx''tttt'.replace (/ (t)? t / g, fonction ($ 0, $ 1) {return $ 1? $ 1 +' x ': $ 0;}) // txtxExemple 3
Utilisation de $ et symbole
Fonction EscapeRegexp (str) {return str.replace (/ [ABC] / g, "($ &)");} var str = 'a12b34c'; console.log (Escaperegexp (str)); // (a) 12 (b) 34 (c)