Исключение символов. Регулярные.

i_tester

Новичок
Исключение символов. Регулярные.

Всем привет )
Регулярка '/(([[:alpha:]][-+.[:alnum:]]*):\/\/(%[[:digit:]A-Fa-f]{2}|[-_.!~*\';\/?%^\\\\:mad:&={\|}+$#\(\),\[\][:alnum:]])+)/se' написана не мной, но мне надо ее подправить, чтобы выбирались только те, где на конце нет #img.
В статье прочитал, что надо добавить (?!#img) и прибудет счастье (( неполучилось
Исходный...
PHP:
$p_string = preg_replace( '/(([[:alpha:]][-+.[:alnum:]]*):\/\/(%[[:digit:]A-Fa-f]{2}|[-_.!~*\';\/?%^\\\\:@&={\|}+$#\(\),\[\][:alnum:]])+)/se', "not img", $p_string);
Неработающий код...
PHP:
$p_string = preg_replace( '/(([[:alpha:]][-+.[:alnum:]]*):\/\/(%[[:digit:]A-Fa-f]{2}|[-_.!~*\';\/?%^\\\\:@&={\|}+$#\(\),\[\][:alnum:]])+)(?!#img)/se', "not img", $p_string);
Помогите пжлста.
 

Гравицапа

elbirret elcno
i_tester
написана не мной, но мне надо ее подправить,
Ну вот заодно и разберешься с регулярными выражениями =)
Сомневаюсь, что кто-то будет разбираться в твоей_нетвоей регулярке...
 

i_tester

Новичок
Дело тут совсем не в регулярке - могу сократить, суть то одна и таже...
'/\.\d*(?!#img)/' - чтобы отсеивались только те, где на конце нет #img
 

andymc

Новичок
Вот это длинющие выражения
([[:alpha:]][-+.[:alnum:]]*):\/\/(%[[:d.........
сначала надо заменить на простые [^...], то есть проверять наличие допустимых символов а не всех подряд
чтобы отсеивались только те, где на конце нет #img
а вот с этой задачей прекрасно справится и strrchr($str, '#img'). Если его длина != 4, то отсеввай
 
Сверху