Ниже приведена моя версия, которая выполняется чрезвычайно быстро, легко обновляется по различным критериям и имеет лучшую читабельность (по крайней мере, для меня):
Регулярное выражение
(\D*\d){2,}
Пример
Bob11 - Match
Bo1b1 - Match
11Bob - Match
1Bob1 - Match
11235 - Match
Bobb - Does NOT Match
Bob1 - Does NOT Match
Bo1b - Does NOT Match
1Bob - Does NOT Match
Объяснение
\D
– не цифра.
*
– (квантификатор) ноль или более раз.
\d
– одна цифра.
(\D*\d)
– инкапсулирует приведенную выше комбинацию. как группа.
{2,}
- (квантификатор) гарантирует, что группа встречается как минимум 2 раза, а может встречаться больше раз.
(\D*\d){2,}
- Итак, \D*
нецифровое ноль или бесконечное количество раз, за которым следует цифра \d
, эта комбинация повторяется {2,}
два или бесконечное количество раз.
Обновление в соответствии с другими критериями
^
(привязка начальной строки) и $
(привязка конечной строки) могут быть включены, чтобы гарантировать ограничение, в случае изменения критерия на точное значение 2 или любое другое число. Это пример, который гарантирует не более, не менее 5 цифр в строке: ^(\D*\d){5}\D*$
. Последний \D необходим, чтобы строка могла заканчиваться не цифрой, проверяя правильность регулярного выражения, если удовлетворяются критерии из пяти цифр.*
person
Vitox
schedule
27.01.2020