У меня есть текстовая строка:
test1test
Я хочу проверить, содержит ли он хотя бы одну цифру, используя регулярное выражение.
Что будет выглядеть это регулярное выражение?
У меня есть текстовая строка:
test1test
Я хочу проверить, содержит ли он хотя бы одну цифру, используя регулярное выражение.
Что будет выглядеть это регулярное выражение?
Я удивлен, что никто не упомянул простейшую версию:
\d
Это будет соответствовать любой цифре. Если ваш механизм регулярных выражений является Unicode-знанием, это означает, что он будет соответствовать любому, что определено как цифра на любом языке, а не только арабским цифрам 0-9.
Нет необходимости помещать его в квадратные скобки [
]
, чтобы определить его как класс символов, как это сделал один из других ответов; \d
работает отлично сам.
Поскольку он не привязан к ^
или $
, он будет соответствовать любому подмножеству строки, поэтому, если строка содержит хотя бы одну цифру, это будет соответствовать.
И нет необходимости в дополнительной сложности +
, поскольку цель состоит в том, чтобы определить, есть ли хотя бы одна цифра. Если есть хотя бы одна цифра, это будет соответствовать; и он будет делать это с минимальными накладными расходами.
Регулярное выражение, которое вы ищете, просто следующее:
[0-9]
Вы не говорите, какой язык вы используете. Если ваш оценщик регулярных выражений принудительно привязывает REs, вам необходимо следующее:
.*[0-9].*
Некоторые двигатели RE (современные) также позволяют вам записать первый как \d
(мнемонический: d igit), а второй затем станет .*\d.*
.
вы можете использовать для этого прогнозное утверждение:
^(?=.*\d).+$
В Java:
public boolean containsNumber(String string)
{
return string.matches(".*\\d+.*");
}
Это:
\d+
должен работать
Изменить, нет подсказки, почему я добавил "+", без него работает так же хорошо.
\d
Ref this
SELECT * FROM product WHERE name REGEXP '[0-9]'
В perl:
if($testString =~ /\d/)
{
print "This string contains at least one digit"
}
где \d
соответствует цифре.