Regex: Проверьте, содержит ли строка по крайней мере одну цифру

У меня есть текстовая строка как это:

test1test

Я хочу проверить, содержит ли это по крайней мере одну цифру с помощью regex.

На что был бы похож этот regex?

35
задан moffeltje 22 April 2015 в 07:45
поделиться

6 ответов

Я удивлен, что никто не упомянул простейшую версию:

\d

Она соответствует любой цифре. Если ваш механизм регулярных выражений поддерживает Unicode, это означает, что он будет соответствовать всему, что определено как цифра на любом языке, а не только арабским цифрам 0–9.

Нет необходимости заключать его в [ квадратные скобки ] , чтобы определить его как класс символов, как это было в одном из других ответов; \ d сам по себе работает нормально.

Поскольку он не привязан к ^ или $ , он будет соответствовать любому подмножеству строки, поэтому, если строка содержит хотя бы одну цифру, это будет соответствовать.

И нет необходимости в дополнительной сложности + , поскольку цель состоит в том, чтобы просто определить, есть ли хотя бы одна цифра. Если есть хотя бы одна цифра, это будет совпадать; И это будет сделано с минимумом накладных расходов.

73
ответ дан 27 November 2019 в 06:28
поделиться

Регулярное выражение, которое вы ищете, просто следующее:

[0-9]

Вы не указываете, какой язык вы используете. Если ваш вычислитель регулярных выражений заставляет RE быть привязанными, вам понадобится следующее:

.*[0-9].*

Некоторые механизмы RE (современные!) Также позволяют записывать первый как \ d (мнемонически: d igit), а второй станет . * \ D. * .

18
ответ дан 27 November 2019 в 06:28
поделиться

для этого можно использовать утверждение look-ahead:

^(?=.*\d).+$
11
ответ дан 27 November 2019 в 06:28
поделиться

Это:

\d+

должно работать

Редактировать, не знаю, почему я добавил "+", без этого все работает так же хорошо.

\d
1
ответ дан 27 November 2019 в 06:28
поделиться

Ссылка this

SELECT * FROM product WHERE name REGEXP '[0-9]'
1
ответ дан 27 November 2019 в 06:28
поделиться

В perl:

if($testString =~ /\d/) 
{
    print "This string contains at least one digit"
}

где \d совпадает с цифрой.

0
ответ дан 27 November 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: