Регулярное выражение для php

SN
На сайте с 04.07.2013
Offline
84
741

Есть такая переменная:

$text = "<div id="block" class="block">Текст "содержащий" кавычки.</div>";

Нужно с помощью регулярного выражения поменять кавычки "засечки" на «елочки».

Но только внутри тегов кавычки должны оставаться "засечки".

Есть такой код:

preg_replace('/ \"/', ' «', $text);

preg_replace('/\"[ .,;:]/', '» ', $text);

Как добавить сюда исключение замены кавычек в тегах?

LH
На сайте с 26.09.2013
Offline
89
#1

У меня аналогичный вопрос

напишите регулярное выражение для поиска строки( см. ниже)

---

#ИМЯХЕШТЕГА 34,207 POSTS

---

emariaru
На сайте с 26.10.2010
Offline
73
#2
$text = "<div id="block" class="block">Текст "содержащий" кавычки.</div>";

ошибка жеж будет

C
На сайте с 26.10.2013
Offline
54
#3

Я не силен в регулярках, но вроде можно получить текст между тегами, провести манипуляции и вставить обратно? Вот говнокод, да простит меня публика :)


$text = '<div id="block" class="block">Текст "содержащий" кавычки.</div>';
preg_match('|<div.*?\>(.+?)</.*?\>|is', $text, $m);
$new_text = $m[1];
// Тут манипуляции с $new_text типа замен и прочего
//
//
// Меняем обратно
$text = str_replace($m[1], $new_text, $text);
Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп
J
На сайте с 20.02.2014
Offline
120
jkm
#4

$text = '<div id="block" class="block">Текст "содержащий" кавычки.</div>';

$text = preg_replace('/<[a-z][^>]*>(*SKIP)(?!)| "/i', ' «', $text);
$text = preg_replace('/<[a-z][^>]*>(*SKIP)(?!)|"[ .,;:]/i', '» ', $text);
S
На сайте с 30.09.2016
Offline
469
#5

Ну, или так:

$text = preg_replace('/(>[^>]*)"([^>]*)"[.,;:]?([^>]*<\/)/', '\1«\2»\3', $text);
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.

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