| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
Регулярные выражения
Нужно сделать такую конструкцию чтобы отсеивать только чётные или нечетные повторения... например...
Строка: "Hello World!!!" удалить "!" - если их количество подряд стоячих не четное... Результат: "Hello World"
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... |
|
|
|
|
# 3 |
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
Правильно только не совсем я правильно высказался... в общем есть вот такое:
vasya = 'lena' zina = 'petya' veronika = 'oleg valer\'ovich' это все текст, нужно заменить такое вот \' на какой нить символ скажем chr(1).... но вся проблема в том что может быть такой вариант: vasya = 'lena' zina = 'petya' veronika = 'oleg valer\'ovich\\' когда выражение типа \\' заменится на \ и символ chr(1) поэтому надо менять только когда нечетное количество...
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... |
|
|
|
|
# 5 |
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
Ладно... вообщем не то... ну да ладно, завтра на свежую голову что то придумаю. Да парсер это для импорта SQL запросов в базу. Работал-работал, а тут попался такой вот запросик, и загнулся.
Спасибо, буду дальше думать.
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... |
|
|
|
|
# 7 |
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
Есть файл с запросами и надо их выполнять по очереди, (дамп короче)...
Надо определять начало и конец каждого запроса. Не совсем тут mysql_real_escape_string поможет )))
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... |
|
|
|
|
# 9 |
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
отделяются )))) точкой с запятой ![]() но в тексте тоже такие имеются )))было бы очень легко, если б так
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... |
|
|
|
|
# 11 |
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
уже так и сделал... забыл сказать... ![]() 1) $query = str_replace(array("\r","\\'"),array("",chr(1)),$query); (заменил все "интересные последовательности") 2) preg_match_all("/'[^']*'/",$query,$query_array); (выбрал все поля) 3) $change_from = ";\n"; $change_to = chr(30); foreach($query_array[0] as $query_line) { $position = strpos($query_line,$change_from); if ($position > 0) { $query = str_replace($query_line,str_replace($change_from,$change_to,$query_lin e),$query); } } (заменил все переносы строк в полях на символ 30 если встретился) 4) $query = str_replace(chr(1),"\\'",$query); $query_array = explode($change_from,$query); (Вернул текст с запросами к нормальному виду... а именно восстановил "интересные последовательности". А затем превратил в массив запросов весь текст.) 5) $query = str_replace($change_to,$change_from,$query); (При выполнении запроса, вернул в значение полей символ ";") Собственно говоря, наверное есть и более простые решения, а может и более сложные, но на данном этапе, мне этого достаточно, будем считать, что я нашел решение. Можно и не продолжать )) если конечно у кого то не найдется более элегантное решение данной проблемы.Спасибо всем, особенно модераторам
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... |
|
|