Получить числа (включая «-») с ненулевым нулем - PullRequest
2 голосов
/ 19 апреля 2019

Я хочу сопоставить числа, включая "-", с не ведущими нулями и обычными числами без "-".Поэтому я хочу использовать регулярное выражение.

Регулярное выражение
должно соответствовать 0 1 2 3 123 2-3 22-33
, а
не должно соответствовать 0123-123 01234.

Следующее регулярное выражение работает почти:

\b(0|[1-9][0-9]*\-?[0-9]*)\b

Числа 0 1 2 3 123 2-3 22-33 и 01234 сопоставлены правильно, но 0123-123 нет: оно сопоставлено частично,https://regex101.com/r/0Po3Ed/1.

1 Ответ

4 голосов
/ 19 апреля 2019

Вы можете использовать в своем регулярном выражении отрицательный вид:

(?<!-)\b(?:0|[1-9][0-9]*(?:-[0-9]+)?)\b

Обновленный демонстрационный пример RegEx

(?<!-) - это отрицательные выражения, которые не будут совпадать, еслиу вас есть - перед цифрами.

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