Консультация № 61097
03.11.2006, 06:30
0.00 руб.
0 6 3
Как сделать, чтобы диапазон [0-9a-z ] (в регулярном выражении eregi) совпадал еще и с символом "-" (минус/дефиз)?

Обсуждение

Неизвестный
03.11.2006, 07:00
общий
это ответ
Здравствуйте, Бобровский Сергей Сергеевич!
В случае, если ‘-‘ необходим, как член класса, он должен находиться в такой позиции, в которой он не может интерпретироваться как диапазон (как правило, это первый и последний символ описания класса) либо экранироваться при помощи обратного слеша.
Неизвестный
03.11.2006, 07:36
общий
это ответ
Здравствуйте, Бобровский Сергей Сергеевич!

Это спец символ - следовательно его надо экранировать

[0-9a-z\-]
Неизвестный
03.11.2006, 07:38
общий
А у меня, например, такой код:<? $s="KJG-u2D-iG8u"; echo "‘$s‘ is ereged as: ".ereg_replace("[0-9-]","%",$s);?>выводит:‘KJG-u2D-iG8u‘ is ereged as: KJG%u%D%iG%uт.е. все цифры и дефисы нормально заменяются на %
Неизвестный
03.11.2006, 07:42
общий
Ой - сорри ошибсяЭкранирование там не обязательноДолжно работать просто [0-9a-z-]А вот почем не работает - приведи более полный пример
Неизвестный
03.11.2006, 07:46
общий
я просто не в тот диапзон добавлял дефиз =) вставил куда надо и всё ок, спасибо!
Неизвестный
04.11.2006, 19:08
общий
это ответ
Здравствуйте, Бобровский Сергей Сергеевич!
вижу, что уже ответили.
На будущее - обратный слеш " \ " делает используемый симолв в регулярных выражениях простым символом.
например симолв ^ говорит о начале строки. если написать \^ то функция будет просто искать этот символ в переменной
Форма ответа