Regex не работает в Java - PullRequest
       2

Regex не работает в Java

0 голосов
/ 27 октября 2011

У меня есть это регулярное выражение [a-zA-Z]\d\d\\$\d\d-\d\d\d\d и мое значение A11$12-9190 Но это не совпадает. Любые подсказки?

Ответы [ 4 ]

4 голосов
/ 27 октября 2011

Каждая обратная косая черта \ должна быть экранирована дополнительной обратной косой чертой \\ в шаблонах java. Обратите внимание, что обратная косая черта перед знаком доллара уже экранирована.

Полученное регулярное выражение будет:

[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d
2 голосов
/ 27 октября 2011

В основном происходит то, что Java предполагает, что ваш \ d является escape-символом для String, вам нужно преобразовать его в \\ d - первый \ для выхода из второго \, который выходит за d для регулярного выражения!

1 голос
/ 27 октября 2011

Ваше регулярное выражение недействительно. например.,

  String test = "A11$12-9190";
  String regex = "[a-zA-Z]\\d\\d\\$\\d\\d-\\d\\d\\d\\d";

  System.out.println(test.matches(regex));
0 голосов
/ 27 октября 2011

Вы избегаете всех \?Если у вас есть строка, вам придется сделать "\\d".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...