Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как экранировать знак равно?
 
 автор: levsha   (24.03.2009 в 22:22)   письмо автору
 
 

Как экранировать знак равно в регулярных выражениях?
Вот этот шаблон не срабатывает
'/^[ёЁа-яА-Яa-zA-Z0-9\-\s_' . preg_quote('\'".,/\+!@№%&*(){}[]:;?<>=') . ']+$/iu'

Равно не экранируется, все остальные символы нормально.

  Ответить  
 
 автор: Trianon   (24.03.2009 в 22:28)   письмо автору
 
   для: levsha   (24.03.2009 в 22:22)
 

1. а зачем его экранировать в символьном диапазоне?
2. и если заэкранировать его руками ( как минус в этом же шаблоне) - что-нибудь меняется?

  Ответить  
 
 автор: levsha   (24.03.2009 в 23:28)   письмо автору
 
   для: Trianon   (24.03.2009 в 22:28)
 

1. Так он мне нужен именно как символ, а не его системное значение.
2. Вручную тоже ничего не выходит

  Ответить  
 
 автор: Trianon   (24.03.2009 в 23:33)   письмо автору
 
   для: levsha   (24.03.2009 в 23:28)
 

1.у него нет специальных значений в контексте символьного диапазона.
да и в прочих контекстах шаблона, по-моему, тоже нет.

2. что лишь подтверждает факт 1.

  Ответить  
 
 автор: levsha   (25.03.2009 в 10:03)   письмо автору
 
   для: Trianon   (24.03.2009 в 23:33)
 

хз, ну и как мне его включить в символьный диапазон тогда?

  Ответить  
 
 автор: Trianon   (25.03.2009 в 10:16)   письмо автору
 
   для: levsha   (25.03.2009 в 10:03)
 

если скрипт сам в кодировке utf8, то так:

<?
$pattern 
'/^[№ёЁа-яА-Яa-zA-Z0-9\-\s_\/'
        
preg_quote('\'".,\+!@%&*(){}[]:;?<>=')
        . 
']+$/iu';

если скрипт в 1251 , то так:

<?
$pattern 
'/^['.iconv('windows-1251''utf-8','№ёЁа-яА-Я').'a-zA-Z0-9\-\s_\/'
        
preg_quote('\'".,\+!@%&*(){}[]:;?<>=')
        . 
']+$/iu';


<?
var_dump
(preg_match($pattern'-=-'));
?>


ошибки были в том, что preg_quote не будет экранировать слэш / , поскольку не знает, что он применен специальным образом. Его нужно заэкранировать принудительно.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования