Cześć,
mam taki problem mam jakiś tekst np. "Due to too many attempts to log in, the account has been suspended for 15 minute(s).". Chciałbym go porównać z innym tekstem, identycznym z taką różnicą, że czas może być różny. Zamiast 15 może być np. 5.
Czyli chciałbym mieć stringa jak wyżej tylko, żeby liczba minut dopasowywała się do tej z pobranego innego stringa.
Jak skonstruować takiego stringa?
Jest jakoś możliwość, żeby w miejsce liczby podać jakiegoś wildcard? Próbowałem z \d{1}
, ale coś chyba, źle rozumiem jak to działa :(
\d{1}
sprawdza czy jest dokładnie jedna cyfra. spróbuj \d+
Zalezy ilu cyfrowa ma być ta liczba minut:
\d
- dokładnie jedna cyfra;
\d+
- jedna lub więcej cyfra;
\d{<tu liczba ile dokładnie ma być cyfr>}
;
\d\d?
- jedna lub dwie cyfry, tu juz mozna kombinować: d\d?\d?
- od jednej do trzech cyfr, itd...
Mhm, tylko jak porównać te stringi czy jeden jest równy drugiemu? Obecnie mam coś takiego:
stringPattern.contains(string)
Gdzie ten pierwszy to ""Due to too many attempts to log in, the account has been suspended for \d+ minute(s).",
a drugi "Due to too many attempts to log in, the account has been suspended for 15 minute(s)."
\d\d? - jedna lub dwie cyfry, tu juz mozna kombinować: d\d?\d? - od jednej do trzech cyfr, itd...
A nie 0 lub 1?
No nie no, tak to nie. Obczaj klasy Pattern
, Matcher
barslo napisał(a):
Mhm, tylko jak porównać te stringi czy jeden jest równy drugiemu? Obecnie mam coś takiego:
stringPattern.contains(string)
Gdzie ten pierwszy to ""Due to too many attempts to log in, the account has been suspended for \d+ minute(s).",
a drugi "Due to too many attempts to log in, the account has been suspended for 15 minute(s)."
https://docs.oracle.com/javase/tutorial/essential/regex/test_harness.html
No dobra doszedłem do czegoś takiego:
Pattern p = Pattern.compile("Due to too many attempts to log in, the account has been suspended for \\d+ minute(s).");
Matcher m = p.matcher("Due to too many attempts to log in, the account has been suspended for 1 minute(s).");
m.matches();
Jednak zwracam mi fail.
Intellij podpowiada mi coś jak by z tymi nawiasami było coś nie tak.
nawiasy i kropka powinny być poprzedzone backslashem - w patternie jedynie ofc