Регулярка >n

12
edjiek
На сайте с 27.02.2014
Offline
83
856

Как трекать урлы с регулярками, id которых больше N?

Например:

site.com/id250.html

site.com/id251.html

...

site.com/id380.html

типа id[>250]

D
На сайте с 14.01.2007
Offline
153
#1

всё просто

(2[56789]\d)|([3456789]\d\d)|(\d{4,})
C
На сайте с 04.02.2005
Offline
291
#2

id(?<=\d{3})(?>250)\.html

не проверял

O
На сайте с 20.10.2008
Offline
101
#3
Chukcha:
id(?<=\d{3})(?>250)\.html
не проверял

Это вобще что за наскальная живопись!?

Можно пояснение или источник? Жутко интересен подход!

42
edjiek
На сайте с 27.02.2014
Offline
83
#4
Dinozavr:
всё просто
(2[56789]\d)|([3456789]\d\d)|(\d{4,})

не уловил логику

siv1987
На сайте с 02.04.2009
Offline
427
#5

preg_match('/id(\d+)\.html/', $str, $out);

if($out[1] > 250){}

/id(2[5-9]\d|[3-9]\d{2}|\d{4,})\.html/

O
На сайте с 20.10.2008
Offline
101
#6
edjiek:
не уловил логику

Зато у Dinozavr это выражение работает. Респект ему за красивость!

Если вкратце, то логика такова: число должно начинаться с двойки, затем иметь в разряде цифру 56789 и заканчиваться ещё любой цифрой (это числа от 250 включительно до 999) или число должно начинаться с цифер 3456789 и иметь в следующих разрядах ещё 2 любых цифры (это числа от 300 до 999) или число должно состоять из 4 или более любых цифер (это любые числа вида 1000, 9999 и т.д.)! ;)

edjiek
На сайте с 27.02.2014
Offline
83
#7

Спасибо за старания.

В чекалке регулярок работает, а в аналитике не хочет.

J
На сайте с 20.02.2014
Offline
120
jkm
#8

Если речь про Google Analytics, то возможно проблема в использовании сокращения \d, если его заменить [0-9]

id(2[5-9][0-9]|[3-9][0-9][0-9]|[0-9]{4,})\.html

edjiek
На сайте с 27.02.2014
Offline
83
#9

Работает, спасибо!

J
На сайте с 20.02.2014
Offline
120
jkm
#10
edjiek:

В чекалке регулярок работает, а в аналитике не хочет.

Сейчас проверил в Google Analytics метасимволы \w \d и \D работают как положено.

У Вас проблема была в чем-то другом.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий