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

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

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

 

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

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

тема: Вырезать фрагменты SQL-запроса
 
 автор: ZAHTET   (28.10.2007 в 16:16)   письмо автору
 
 

Нужно из этого вот :" SELECT s.*,c.* as cset FROM settings s ,portal_settings c WHERE c.set = '2' "
вырезать
1)s.*,c.* as cset
2)settings s ,portal_settings c
3)WHERE c.set = '2' "
и все эти строки нужно в массив

я делаю это так

$sql2 = "SELECT s.*,c.* as cset FROM settings s ,portal_settings c WHERE c.set = '2' ";
preg_match("/select (.+) from (\[A-z0-9\ ]+) [|where (.+)|limit (.+)|order (.+)]?/i",$sql2,$match);

но неправильно работает, где тут ошибка, не можете подсказать?

   
 
 автор: kasmanaft   (28.10.2007 в 16:44)   письмо автору
 
   для: ZAHTET   (28.10.2007 в 16:16)
 

[|where (.+)|limit (.+)|order (.+)]

Так делать нельзя... Попробуйте квадратные скобки заменить круглыми.
И может быть еще добавить модификатор "U", чтобы жадность изменить.

И вот тут (\[A-z0-9\ ]+) экранировать ничего не надо.

   
 
 автор: ZAHTET   (28.10.2007 в 16:47)   письмо автору
 
   для: kasmanaft   (28.10.2007 в 16:44)
 

спасибо и за это,я очень плохо в этом разбираюсь и поэтому не могли бы вы подсказать что такое "U"?

   
 
 автор: kasmanaft   (28.10.2007 в 17:28)   письмо автору
 
   для: ZAHTET   (28.10.2007 в 16:47)
 

Модификатор такой :)
Изменяет жадность регулярного выражения. По умолчанию выражение жадное, под .* попадает как можно больше текста, если добавить U, будет наоборот.

Попробуйте вот так: /select (.+) from (.+)(| where (.+)| limit (.+)| order (.+))$/Ui

   
Rambler's Top100
вверх

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