Страница 1 из 1

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

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

но

a1a2a3 = false

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

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

Добавлено: 2014-11-19 20:55:56
zg
Привет)

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

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

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

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

Добавлено: 2014-11-19 21:10:23
garrotte
Спасибо, но не то )
регулярка была нужна именно перловая, поскольку они в 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;
}

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

Добавлено: 2014-11-19 21:20:07
zg
garrotte, аааа :) я сначала так хотел написать, но решил более общее решение показать. Форум программерский, думал надо в скрипте использовать.