perl regexp не более 2-х цифр ы строке текста

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
garrotte
ефрейтор
Сообщения: 64
Зарегистрирован: 2008-02-27 15:56:09
Контактная информация:

perl regexp не более 2-х цифр ы строке текста

Непрочитанное сообщение garrotte » 2014-10-28 21:26:24

Приветствую
Друзья, подскажите регулярку, которая-бы возвращала истину, если в строке кроме любого кол-ва букв, присутствовало-бы не более 2-х цифр, например:
a1a2a = true
a1a = true
aa = true

но

a1a2a3 = false

Заранее благодарю

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: perl regexp не более 2-х цифр ы строке текста

Непрочитанное сообщение zg » 2014-11-19 20:55:56

Привет)

Не знаю зачем, но можно так)

Код: Выделить всё

home% echo -n a1a2a3 | sed -E 's/[^0-9]//g' | wc -m
3

Аватара пользователя
garrotte
ефрейтор
Сообщения: 64
Зарегистрирован: 2008-02-27 15:56:09
Контактная информация:

Re: perl regexp не более 2-х цифр ы строке текста

Непрочитанное сообщение garrotte » 2014-11-19 21:10:23

Спасибо, но не то )
регулярка была нужна именно перловая, поскольку они в nginx используются
Не знаю зачем
была ддос атака с характерными реферрерами типа:
kh5sd356kjru
yl36lhjlh45lh.com
ну и т.д.
я их этой регуляркой и отлавливал в отдельный лог а потом внешним скриптом в ipset укладывал :)
кусок конфига с регкляркой выглядит так:

Код: Выделить всё

valid_referers none blocked server_names ~^\D*\d?\D*\d?\D*/.*$;
if ($invalid_referer) {
  return 418;
  error_page 418 = @invalid_referer;
}

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: perl regexp не более 2-х цифр ы строке текста

Непрочитанное сообщение zg » 2014-11-19 21:20:07

garrotte, аааа :) я сначала так хотел написать, но решил более общее решение показать. Форум программерский, думал надо в скрипте использовать.