JavaRush /Blog Java /Random-FR /Backlinks dans les expressions régulières Java
eGarmin
Niveau 41

Backlinks dans les expressions régulières Java

Publié dans le groupe Random-FR
Les références arrière dans les expressions régulières Java sont une fonctionnalité très utile prise en charge par le moteur Java . Afin de comprendre ce que sont les backlinks, vous devez d'abord apprendre à comprendre ce qu'est un groupe . Le groupe dans les expressions régulières traite plusieurs caractères comme une seule unité. Les groupes sont créés en plaçant des caractères entre parenthèses – « () ». Une paire de parenthèses constitue un groupe. Les backlinks sont pratiques car nous pouvons répéter les modèles de recherche sans les copier directement. Il suffit de faire référence à un groupe préalablement défini en utilisant une construction comme \N , où N est le numéro du groupe. Les 2 exemples suivants vous donnent une idée de la commodité des backlinks.
Exemple 1 : Trouver un motif répétitif
Une construction de la forme (\d\d\d)\1 correspond à la ligne 123123, mais pas à la ligne 123456. String str = "ля123123ля"; Pattern p = Pattern.compile("(\\d\\d\\d)\\1"); Matcher m = p.matcher(str); System.out.println(m.groupCount()); while (m.find()) { String word = m.group(); System.out.println(word + " " + m.start() + " " + m.end()); } Résultat : 1 123123 2 8 Note du traducteur ! Ici, en tant que traducteur, je veux prendre un peu de liberté et insérer des commentaires de ma part, car J'apprends moi-même les expressions régulières et j'espère qu'ils me corrigeront avec des gros mots :) si ce que j'écris ci-dessous est une erreur : 1) La méthode groupCount () Renvoie le nombre de groupes spécifiés dans le modèle, donc même si la chaîne d'entrée est "la123" 456 la", qui ne rentre pas dans le modèle, le chiffre 1 sera toujours affiché à l'écran. 2) La méthode find() Recherche le groupe suivant, mais renvoie uniquement une valeur booléenne : true – trouvé, false – non trouvé 3) Méthode group() Renvoie la dernière sous-chaîne trouvée à partir du modèle. Dans ce cas 123123 4) La méthode start() Renvoie la position de la sous-chaîne trouvée dans la chaîne source (numérotation, bien sûr, en commençant à zéro) 5) La méthode end() Renvoie la position dans la chaîne source immédiatement après la chaîne trouvée sous-chaîne. Ainsi, cette valeur ne pointe pas vers le dernier caractère de la sous-chaîne trouvée dans la chaîne source, mais vers le suivant.
Exemple 2 : Recherche de mots en double
String pattern = "\\b(\\w+)\\b[\\w\\W]*\\b\\1\\b"; Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); String phrase = "unique is not duplicate but unique, Duplicate is duplicate."; Matcher m = p.matcher(phrase); while (m.find()) { String val = m.group(); System.out.println("Найденная последовательность символов: \"" + val + "\""); System.out.println("Слово-дубликат: " + m.group(1) + "\n"); } Conclusion : Найденная последовательность символов: "unique is not duplicate but unique" Слово-дубликат: unique Найденная последовательность символов: "Duplicate is duplicate" Слово-дубликат: Duplicate Veuillez noter que cette méthode de recherche de mots en double (à l'aide d'expressions régulières) n'est pas optimale. Par exemple, dans l'exemple ci-dessus, le premier mot « dupliquer » est ignoré.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION