Регулярное выражение: проверьте, содержит ли строка хотя бы одну цифру - PullRequest
32 голосов
/ 05 июля 2010

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

test1test

Я хочу проверить, содержит ли она хотя бы одну цифру, используя регулярное выражение.

Как будет выглядеть это регулярное выражение?

Ответы [ 7 ]

70 голосов
/ 05 июля 2010

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

\d

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

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

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

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

17 голосов
/ 05 июля 2010

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

[0-9]

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

.*[0-9].*

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

13 голосов
/ 09 мая 2015

В Java:

public boolean containsNumber(String string)
{
    return string.matches(".*\\d+.*");
}  
9 голосов
/ 05 июля 2010

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

^(?=.*\d).+$
1 голос
/ 05 июля 2010

Это:

\d+

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

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

\d
0 голосов
/ 05 июля 2010

В perl:

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

, где \d соответствует цифре.

0 голосов
/ 05 июля 2010

Ссылка это

SELECT * FROM product WHERE name REGEXP '[0-9]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...