Chcę dopasować coś takiego jak aaa, aaaad, adjjjjk. Coś w stylu ([a-z]) \ 1+ zostało użyte do dopasowania powtarzających się znaków, ale nie jestem w stanie tego rozgryźć na cztery litery.Regex, aby dopasować cztery powtarzające się litery w ciągu używając wzorca Java
Odpowiedz
Nie wiedząc o składni powtarzania skończonych, własne rozwiązywanie problemów umiejętności powinny prowadzić do tego:
([a-z])\1\1\1
Oczywiście to nie jest ładna, ale:
- Działa
- Sprawuje własne umiejętności rozwiązywania problemów
- Może to doprowadzić do lepszego zrozumienia koncepcji
- W tym przypadku, znając odcukrzona formę składni powtarzania skończonej
Hey guys ochłodzenia odpowiedź, ale mam jeden problem
"ffffffff".matches("([a-z])\\1{3,}") = true
"fffffasdf".matches("([a-z])\\1{3,}") = false
"asdffffffasdf".matches("([a-z])\\1{3,}") = false
Co mogę zrobić dla dwóch pierwszych?
Problem polega na tym, że w Javie matches
trzeba dopasować cały ciąg; to tak, jakby wzór jest otoczony przez ^
i $
.
Niestety nie ma String.containsPattern(String regex)
, ale zawsze można skorzystać z tej sztuczki od otaczającego wzór z .*
:
"asdfffffffffasf".matches(".*([a-z])\\1{3,}.*") // true!
// ^^ ^^
Jeśli próbujesz dopasować ciąg, w którym szukany ciąg jest tuż przed znakiem końca linii, powyższy wzór nie będzie zgodny. (Nauczyłem się tego na własnej skórze!). Możesz zrobić: "" asdfffffffffasf ".matches (". * ([Az]) \\ 1 {3,} (? S). * ")" Gdzie "(? S)" uruchamia dopasowanie dla znaków końca wiersza . – seinecle
najlepiej jest znaleźć powtarzającą się postać. –
Szukałem tego od ostatnich 2 godzin. Dziękuję Ci bardzo –
chcesz dopasować pojedynczy znak, a następnie, że charakter powtórzono jeszcze trzy razy:
([a-z])\1{3}
UWAGA: W Javie musisz uciec backslashy wewnątrz wyrażeń regularnych.
Aktualizacja: Powodem, dlaczego nie robi tego, co chcesz, to dlatego, że stosując metodę matches
która wymaga, że ciąg dokładnie pasuje do wyrażenia regularnego, a nie tylko to, że zawiera wyrażenie regularne. Aby sprawdzić ograniczenie, powinieneś użyć klasy Matcher
. Oto przykładowy kod:
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());
}
}
Wynik:
true
Można umieścić {n}
po coś, aby dopasować go n
razy, więc:
([a-z])\1{3}
Ogólny wzór regex dla predefinite powtórzenie {4}
.
Tak więc tutaj ([a-z]) \ 1 {3} powinno pasować do 4 znaków.
- 1. Regex, aby dopasować co najmniej 2 cyfry, 2 litery w dowolnej kolejności w ciągu znaków
- 2. Regex, aby dopasować początek i koniec ciągu znaków w Javie
- 3. Regex, aby dopasować zmienną w skryptach wsadowych
- 4. Regex: Powtarzające się grupy przechwytywania
- 5. Regex, aby użyć każdej litery tylko raz?
- 6. Regex, aby dopasować 1 lub mniej wystąpień ciągu?
- 7. Regex dopasować nazwę użytkownika
- 8. C# Wyrażenie regularne, aby dopasować litery, cyfry i podkreślenie
- 9. Regex, aby dopasować słowo do znaków + (plus)
- 10. Regex, aby dopasować tylko niektóre nazwy plików
- 11. Regex, aby dopasować ścieżkę w C#
- 12. regex - Jak dopasować podciąg po X wystąpieniach wzorca?
- 13. Regex, jak dopasować opcjonalny znak
- 14. Regex, aby dopasować symbole:! $%^& *() _ + | ~ - = `{} []:"; '<>?,./
- 15. Regex, aby dopasować do czegoś, co nie jest określonym podciągiem
- 16. JS RegEx, aby dopasować tylko niektóre wzorce.
- 17. Regex, aby dopasować i ograniczyć klasy znaków
- 18. Ruby Regex, aby dopasować kolor skali szarości
- 19. Regex, aby dopasować niechlujne frakcje/numery mieszane
- 20. Dopasowywanie wzorca Java Regex - operator "Jeden lub więcej"
- 21. Jak dopasować wzór do zmiennej wielkiej litery?
- 22. Regex, aby dopasować tylko przecinki nie w nawiasach?
- 23. regex dopasować EOF
- 24. W programie Excel, w jaki sposób wyodrębnić ostatnie cztery litery ciągu dziesięć liter?
- 25. Jak usunąć powtarzające się znaki w ciągu znaków
- 26. Regex, aby dopasować 2-20 znaków alfanumerycznych, umożliwiając pojedynczy łącznik w dowolnym miejscu ciągu.
- 27. Konstrukcja java: powtarzające się metody podobiektów
- 28. Regex, aby dopasować treść treści HTML w PHP
- 29. Jak znaleźć rozpoczynające się słowo w ciągu używając NSPredicate?
- 30. niejawny w ciągu wzorca meczu
Hej chłopaki fajne odpowiedzi, ale mam jeden problem „FFFFFFFF” .matches ("([AZ ]) \\ 1 {3,} ") = true " fffffasdf ".matches (" ([az]) \\ 1 {3,} ") = false " asdffffffasdf ".matches (" ([az]) \\ 1 {3,} ") = false co mogę zrobić dla dwóch pierwszych? –