Регулярное выражение, чтобы соответствовать числам больше или равно единице - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно написать регулярное выражение для совпадения с числом больше или равным единице.Я посмотрел на этот ответ

Regex: ^(?:[2-9]|\d\d\d*)$

Но я не понимаю, почему перед номером стоит ?:?Кроме того, если число в моем случае находится в середине предложения, то я должен удалить следующее ^( )$ из моего регулярного выражения?

РЕДАКТИРОВАТЬ:

Мне нужна решетка больше или равна 1, а не только больше.Поэтому я должен использовать [1-9] вместо [2-9]?

EDIT2: Мне нужно регулярное выражение для захвата любого числа, большего или равного числу 1.Пример: 2,3,4, 11, 100, 31557600 или любое число больше этого.

1 Ответ

0 голосов
/ 09 мая 2019

?: Просто искать шаблон без захвата.Ваш случай кажется другим.Кроме того, () предназначены для создания группы, опять же, вам не нужны эти функциональные возможности, поскольку ваш вариант использования довольно прост.тогда вы можете перейти с ^[1-9]\d*$.Если числа могут находиться между предложениями, используйте \b[1-9]\d*\b для поиска границ слов.

Основная идея такова: вы хотите сопоставить любое неотрицательное число, которое не равно нулю.Таким образом, номер не должен начинаться с - или 0.Итак, начните с 1-9 (\b[1-9] часть регулярного выражения), за которыми следуют любые цифры (\d*\b часть регулярного выражения).

Очевидно, что это оставляет много форм чисел: плавает как десятичные дроби (например, 23.456), числа в экспоненциальной форме (например, 1.23e4) и т. д.

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