Ndodhi një sjellje të çuditshme të përputhjes regex në Java. Komanda e parë e daljes printon true
siç pritej, por kur i njëjti varg paketohet në Scanner
, dalja është false
. Çfarë po bëj gabim?
public static void main(String[] args) {
Pattern p = Pattern.compile(" *\\[");
System.out.println(p.asPredicate().test("[]")); //true
Scanner s = new Scanner("[]");
System.out.println(s.hasNext(" *\\[")); //false
}
.*
në fund të çdo regex? 05.07.2017.*
në fund. Por në varësi të asaj që vërtet dëshironi të arrini, ndoshta është më mirë të shmangni Skanerin dhe të përdorni Pattern drejtpërdrejt? Është e vështirë të thuash pa e ditur se çfarë vërtet dëshiron të arrish. 05.07.2017