Java регулярное выражение для отрицательных чисел? - PullRequest
5 голосов
/ 29 февраля 2012

У меня есть этот шаблон:

Pattern.compile("T([0-9]*)");

, который хорошо работает для положительных чисел, но мне нужно, чтобы он также делал отрицательные числа, например, "T-1T3T44" должен работать. Или, возможно, используйте пробел вместо 'T', поэтому он должен работать для таких строк: "- 1 2 3 2 -1 6 2". Извините, я до сих пор не использовал регулярные выражения. Есть какие-нибудь предложения? Спасибо.

Ответы [ 5 ]

9 голосов
/ 29 февраля 2012
Pattern.compile("T(-{0,1}(?!0)\\d+)"); 

Обратите внимание на использование отрицательного прогнозирования (?!0) для исключения числа -0 и чисел, начинающихся с 0.

6 голосов
/ 29 февраля 2012

Думал ли ты о попытке:

"T(-?[0-9]+)"

Вы заметите, что я также изменил "*" (ноль или более) на "+" (один или более), поскольку технически "" не является числом: -)

3 голосов
/ 29 февраля 2012

Попробуйте с:

Pattern.compile("T(-?[0-9]*)");
1 голос
/ 29 февраля 2012

Сделать минус необязательно может быть?

Т - ([0-9] *)

1 голос
/ 29 февраля 2012
Pattern.compile("T-?([0-9]*)");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...