Bu regex var [a-zA-Z] \ d \ d \\ $ \ d \ d- \ d \ d \ d \ d ve değerin A11 $ 12-9190 . Ama eşleşmiyor. Herhangi bir ipucu?
[a-zA-Z] \ d \ d \\ $ \ d \ d- \ d \ d \ d \ d
A11 $ 12-9190
Her bir ters eğik çizgi \ , java desenlerinde ek bir ters eğik çizgi \\ ile kaçmak zorundadır. Dolar işareti önünde ters eğikliğin zaten kaçmış olduğunu unutmayın.
\
\\
Ortaya çıkan regex şöyle olurdu:
[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d
Temel olarak, Java'nın sizin \ d karakterinizin String için bir kaçış karakteri olduğunu varsayarak, \\ d'ye dönüştürmeniz gerekecek - ikinciden kaçan ilk \ 'regex için d'den kaçacaksınız!
Normal ifadeniz geçerli değil. Örneğin.,
String test = "A11$12-9190"; String regex = "[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d"; System.out.println(test.matches(regex));
Tüm \ kaçıyor musunuz? Bir dizeniz varsa, "\\ d" yapmalısınız.
"\\ d"