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