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

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

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

 

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

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

тема: Замена подстроки в строке
 
 автор: stalk3r   (17.04.2007 в 20:05)   письмо автору
 
 

Вопрос вот в чём, допустим есть строка select lalala from её надо переделать в select another from
Вот сталкнулся с проблемой
паттерн выглядит так


@select([^from]+)from@


но в [^from] проверяется чтобы не встречалась любая из букв (f, r, o и m) а нужно чтобы отрицание относилось именно ко всему слову from

   
 
 автор: kzone   (17.04.2007 в 20:32)   письмо автору
 
   для: stalk3r   (17.04.2007 в 20:05)
 

>но в [^from] проверяется чтобы не встречалась любая из букв (f, r, o и m) а нужно чтобы отрицание относилось именно ко всему слову from
попробуйте писать так:
\b[^form]\b

   
 
 автор: вит   (19.04.2007 в 10:35)   письмо автору
 
   для: stalk3r   (17.04.2007 в 20:05)
 

держи

<?php
$str
="select lalala from";
$str=preg_replace("#(select)(.*)(from)#is","\\1 another \\3",$str);
echo 
$str;
?>

   
 
 автор: stalk3r   (20.04.2007 в 09:19)   письмо автору
 
   для: вит   (19.04.2007 в 10:35)
 

Неа, если так, то тут выражение вида
select lalala from table1 where field = 'frommable'
заменится на select another frommable'
нужно чтобы использовался первый именно from

   
 
 автор: stalk3r   (10.06.2007 в 16:57)   письмо автору
 
   для: stalk3r   (20.04.2007 в 09:19)
 

Так ответит кто-нибудь?

   
 
 автор: kasmanaft   (10.06.2007 в 17:47)   письмо автору
 
   для: stalk3r   (10.06.2007 в 16:57)
 

В примере вит'a можно попробовать изменить жадность модификатором U или локально "вопросом"

#(select)(.*?)(from)#is
#(select)(.*)(from)#isU

А вообще "не from" можно описать так:

((?!from).)*

   
 
 автор: Trianon   (10.06.2007 в 22:53)   письмо автору
 
   для: stalk3r   (10.06.2007 в 16:57)
 

Вам хочется SQL-инъекции отлавливать пачками? Ну-ну....
Чтобы с помощью регулярных выражений строить исполняемый код, нужно быть либо гением, либо героем.

   
Rambler's Top100
вверх

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