И снова про регулярку

S3
На сайте с 29.03.2012
Offline
366
604

Наверное, нужно создавать отдельный топик, чтоб не мусорить по всему форуму.

Моя проблема:

Есть тайтл вида

Nazvanie (название на русском) » » Страна » Прочитать подробнее о стране 

Нужно все что после этих кавычек » » менялось на

| Страна

Помогите правильно составить регулярку!!!

Ну и ссылочку на хороший мануал, для начинающих. На php.su и php.net довольно сложно.

emariaru
На сайте с 26.10.2010
Offline
73
#1

не понял, чтобы это

Nazvanie (название на русском) » » Страна » Прочитать подробнее о стране

превращалось в это?

Nazvanie (название на русском) » » Страна

Дмитрий
На сайте с 23.08.2006
Offline
222
#2

preg_replace('/» ».*$/u', '| Страна', ...);

Разрабатываю и автоматизирую на php http://jonnyb.ru/
S3
На сайте с 29.03.2012
Offline
366
#3
JonnyB:
preg_replace('/» ».*$/u', '| Страна', ...);

Не работает. И похоже из-за этих кавычек. В исходном тексте они идут как

»  »

Как правильно их прописать?

---------- Добавлено 08.09.2014 в 16:03 ----------

И еще вопрос.

В тексте есть примерно такой кусок:

Подробнее об услуге:

Рейтинг 1 блабла
Рейтинг 2Бла бла

Продолжение текста...

Как мне вырезать текст начиная от Подробнее об услуге: до Продолжение

Я так понимаю нужно учитывать перевод строк и прочее.... Не понимаю пока логики регулярки. Хелп!

---------- Добавлено 08.09.2014 в 16:04 ----------

emariaru:
не понял, чтобы это
Nazvanie (название на русском) » » Страна » Прочитать подробнее о стране
превращалось в это?
Nazvanie (название на русском) » » Страна

нет, в

Nazvanie (название на русском) | Страна

Дмитрий
На сайте с 23.08.2006
Offline
222
#4

preg_replace('/»\s».*$/u', '| Страна', ...);

preg_match('/Подробнее\sоб\sуслуге:\r?\n(.*)\nПродолжение/us', ..., $matches);

http://de.php.net/manual/ru/reference.pcre.pattern.syntax.php

http://de.php.net/manual/ru/reference.pcre.pattern.modifiers.php

S3
На сайте с 29.03.2012
Offline
366
#5
JonnyB:
preg_replace('/»\s».*$/u', '| Страна', ...);

preg_match('/Подробнее\sоб\sуслуге:\r?\n(.*)\nПродолжение/us', ..., $matches);

http://de.php.net/manual/ru/reference.pcre.pattern.syntax.php
http://de.php.net/manual/ru/reference.pcre.pattern.modifiers.php

Не могу уловить суть со строками

---------- Добавлено 08.09.2014 в 18:09 ----------

Вот есть в тексте строка:

Читать:

отзывы туристов об отеле

Ее исходный код:

<b>Читать:</b><br>отзывы туристов об отеле

Как ее удалить из текста?

siv1987
На сайте с 02.04.2009
Offline
427
#6
Sly32:
Ее исходный код:

Примеры пишите нормально, с окружающим кодом, чтобы можно было составить выражение.

#<b>Читать:</b><br>(.+?)какой-то_тег#s

S3
На сайте с 29.03.2012
Offline
366
#7
siv1987:
Примеры пишите нормально, с окружающим кодом, чтобы можно было составить выражение.

#<b>Читать:</b><br>(.+?)какой-то_тег#s

Не очень понял ваше замечание. Как разобрался. Сейчас главная проблема - как написать регулярку, которая начиная с определенного слова удалит n-строк вплоть до определенного слова в тексте(или тэга)

Как написать отдельно для каждой строки- вроде понимаю. А вот построчная регулярка все не дается...

S3
На сайте с 29.03.2012
Offline
366
#8

Возникла проблема.

Значение для регулярки передается через input в переменную.

Но если составлять шаблон спецсимволами, не получается их экранировать. Точнее Wordpress их еще и сам экранирует.

Например при вводе \+ что бы найти все плюсики в тексте, Wordpress экранирует и получается \\+ и соответственно ничего не ищется. Как исправить?

siv1987
На сайте с 02.04.2009
Offline
427
#9

stripslashes - google - php.net

S3
На сайте с 29.03.2012
Offline
366
#10
siv1987:
stripslashes - google - php.net

Спасибо, я и забыл что все просто!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий