Подтвердить что ты не робот

Regex: проверьте, содержит ли строка хотя бы одну цифру

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

test1test

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

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

4b9b3361

Ответ 1

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

\d

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

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

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

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

Ответ 2

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

[0-9]

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

.*[0-9].*

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

Ответ 3

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

^(?=.*\d).+$

Ответ 4

В Java:

public boolean containsNumber(String string)
{
    return string.matches(".*\\d+.*");
}  

Ответ 5

Это:

\d+

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

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

\d

Ответ 6

Ref this

SELECT * FROM product WHERE name REGEXP '[0-9]'

Ответ 7

В perl:

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

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