Je veux faire correspondre quelque chose comme aaaa, aaaad, adjjjjk. Quelque chose comme ([a-z]) \ 1+ a été utilisé pour faire correspondre les caractères répétés, mais je ne suis pas capable de comprendre cela pour quatre lettres.Regex pour faire correspondre quatre lettres répétées dans une chaîne en utilisant un modèle Java
Répondre
Ne sachant pas sur la syntaxe de répétition finie, votre propre résolution de problèmes de compétences devrait vous conduire à ceci:
([a-z])\1\1\1
Il est évident que ce n'est pas jolie, mais:
- Il fonctionne
- Il exerce votre propre capacité à résoudre des problèmes
- Cela peut vous mener à une meilleure compréhension des concepts
- Dans ce cas, connaissant la forme Dessucré de la syntaxe de répétition finie
Hey gars cool réponses mais j'ai une préoccupation
"ffffffff".matches("([a-z])\\1{3,}") = true
"fffffasdf".matches("([a-z])\\1{3,}") = false
"asdffffffasdf".matches("([a-z])\\1{3,}") = false
Que puis-je faire pour les deux derniers?
Le problème est que dans Java, matches
doit correspondre à la chaîne entière; c'est comme si le motif était entouré de ^
et $
.
Malheureusement il n'y a pas String.containsPattern(String regex)
, mais vous pouvez toujours utiliser cette astuce d'entourer le motif avec .*
:
"asdfffffffffasf".matches(".*([a-z])\\1{3,}.*") // true!
// ^^ ^^
Si vous essayez de faire correspondre une chaîne où la chaîne que vous recherchez est juste avant un caractère de fin de ligne, le modèle ci-dessus ne correspondra pas. (J'ai appris ça à la dure!). Vous pouvez faire: '"asdfffffffffasf" .matches (". * ([Az]) \\ 1 {3,} (? S). *")' Où '(? S)' déclenche la recherche des caractères de fin de ligne . – seinecle
il est préférable de trouver le caractère répétitif. –
Je recherche cela depuis 2 heures. Merci beaucoup –
Vous voulez faire correspondre un seul caractère et ce caractère répété trois fois:
([a-z])\1{3}
Remarque: Java dont vous avez besoin pour les backslashs dans vos expressions régulières.
Mise à jour: La raison pour laquelle il ne fait pas ce que vous voulez parce que vous utilisez la méthode matches
qui exige que la chaîne correspond exactement à l'expression régulière, non seulement qu'il contient l'expression régulière. Pour vérifier l'endiguement, vous devez utiliser la classe Matcher
. Voici quelques exemples de code:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
class Program
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("([a-z])\\1{3}");
Matcher matcher = pattern.matcher("asdffffffasdf");
System.out.println(matcher.find());
}
}
Résultat:
true
Vous pouvez mettre {n}
après quelque chose pour le match n
fois, donc:
([a-z])\1{3}
Schéma général regex pour la répétition pré-définies est {4}
.
Ainsi ici ([a-z]) \ 1 {3} devrait correspondre à vos 4 caractères.
- 1. Regex pour faire correspondre la chaîne entre%
- 2. Java - comment faire correspondre regex Modèle contenant des guillemets simples?
- 3. Regex pour faire correspondre "tout sauf" une chaîne
- 4. Comment trouver des lettres répétées avec une regex Perl?
- 5. Comment "faire correspondre" avec regex?
- 6. Comment faire correspondre à la deuxième lettre en utilisant regex?
- 7. RegEx pour correspondre à un modèle et exclure une partie de la chaîne
- 8. Quel est le REGEX pour faire correspondre ce modèle dans un document html en C#?
- 9. java: utiliser regex pour analyser des sous-chaînes répétées
- 10. RegEx pour faire correspondre une paire de parenthèses rectangulaires en utilisant javascript
- 11. obtenir une chaîne particulière en utilisant regex dans Java
- 12. Comment valider une chaîne en utilisant regex dans Java
- 13. PHP question regex: comment faire correspondre les lettres none-ascii dans latin1_swedish_ci charset?
- 14. Comment faire correspondre les caractères japonais en utilisant IDN regex?
- 15. Regex pour chaîne en utilisant la bibliothèque GNU C regex
- 16. Regex - Faire correspondre un motif devant un personnage
- 17. Regex pour faire correspondre un mot avec les signes + (plus)
- 18. Obtenez chaîne particulière en utilisant regex java
- 19. Comment faire correspondre un modèle générique de chaîne dans une macro Excel
- 20. motif regex pour faire correspondre les sous-modèles alternatifs
- 21. répétées des groupes Regex
- 22. Regex pour faire correspondre plusieurs chaînes
- 23. Imprimer une chaîne qui contient un certain modèle en Java
- 24. RegEx - Faire correspondre un ensemble de mots
- 25. comment faire correspondre "non" avec plus de caractères dans le modèle java regex?
- 26. Supprimer une sous-chaîne en utilisant Regex
- 27. Regex: Comment faire correspondre une chaîne qui contient un motif répété?
- 28. C# Expression régulière pour faire correspondre les lettres, les chiffres et les traits de soulignement
- 29. Regex pour correspondre 010101
- 30. Regex pour correspondre à un seul caractère
Hé les gars réponses fraîches mais j'ai une préoccupation « FFFFFFFF » .matches ("([az ]) \\ 1 {3,} ") = true " fffffasdf ".matches (" ([az]) \\ 1 {3,} ") = faux " asdffffffasdf ".matches (" ([az]) \\ 1 {3,} ") = false Que puis-je faire pour les deux derniers? –