Diskuze: Regulární výraz pro validaci
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Není spíš problém v tom, že ve výrazu chybí kvantifikátor?
Pro řetězec obsahující pouze jeden znak \f regulární výraz mečuje.
Kód
System.out.println("\f".matches("[\\p{C}&&[^\n\\r\\t]]"));
Výstup
true
Takže jak bych to měl upravit, aby mi validací prošlo libovolný počet znaků /f a neprošel mi žádný znak /n, /r a /t?
Pokud má procházet libovolný počet znaků (včetně žádných znaků), je třeba přidat hvězdičku.
"[\\p{C}&&[^\n\\r\\t]]*"
Pokud alespoň jeden znak, tak plus.
"[\\p{C}&&[^\n\\r\\t]]+"
viz Greedy quantifiers na https://docs.oracle.com/…Pattern.html
Zobrazeno 4 zpráv z 4.