Regex java'da çalışmıyor

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?

0
Bu normal ifade geçerli değil.
katma yazar Hovercraft Full Of Eels, kaynak
Bundan önce $ 'dan kaçıyorsunuz, böylece dizenin sonuna ulaşıyorsunuz, daha sonra daha fazla rakam arıyorsunuz. Mümkün değil.
katma yazar FailedDev, kaynak
Kullandığınız gerçek Java dizesi hangisi?
katma yazar millimoose, kaynak

4 cevap

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
4
katma

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!

2
katma

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));
1
katma

Tüm \ kaçıyor musunuz? Bir dizeniz varsa, "\\ d" yapmalısınız.

0
katma