Ik heb deze regex [a-zA-Z] \ d \ d \\ $ \ d \ d- \ d \ d \ d \ d en mijn waarde is A11 $ 12-9190 . Maar het is geen matching. Enige aanwijzingen?
[a-zA-Z] \ d \ d \\ $ \ d \ d- \ d \ d \ d \ d
A11 $ 12-9190
Elke backslash \ moet worden geëscaped door een extra backslash, \\ , in java-patronen. Merk op dat uw backslash voor het dollarteken al is ontsnapt.
\
\\
De resulterende regex zou zijn:
[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d
Wat er in feite gebeurt, is dat Java aanneemt dat jouw \ d een escape-teken is voor de String, je moet het transformeren naar \\ d - de eerste \ om te ontsnappen aan de tweede \ die de d ontloopt voor de regex!
Uw regex is niet geldig. b.v.
String test = "A11$12-9190"; String regex = "[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d"; System.out.println(test.matches(regex));
Ontsnapt u alle \ ? Als je een string hebt, moet je "\\ d" doen.
"\\ d"