Regex w Stringu

0

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 :(

0

\d{1} sprawdza czy jest dokładnie jedna cyfra. spróbuj \d+

1

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...

0

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)."

0

\d\d? - jedna lub dwie cyfry, tu juz mozna kombinować: d\d?\d? - od jednej do trzech cyfr, itd...

A nie 0 lub 1?

0

No nie no, tak to nie. Obczaj klasy Pattern, Matcher

0
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

0

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.
screenshot-20171031133640.png

1

nawiasy i kropka powinny być poprzedzone backslashem - w patternie jedynie ofc

1 użytkowników online, w tym zalogowanych: 0, gości: 1