Yadalay
@Yadalay
Php, Mysql, Html, Css, Js/Jquery/Ajax, Laravel

Как все виды кавычек заменить на «…»?

Здравствуйте!
Подскажите, пожалуйста, регулярку, которая будет приводить любые кавычки (", ', `, „, “, ’) к виду «…» при условии, что есть открывающая и закрывающая (по логике) кавычка. Также предусмотреть ситуацию, если кавычки находятся в кавычках.
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Исключительно для корректно написанного текста на русском языке можно так.
Заменить все кавычки, перед которыми стоит пробел или начало строки на открывающие "лапки":
$text = preg_replace('/(?<=^|\s)["\'`„“’]/u', '«', $text);

Заменить все оставшиеся кавычки на закрывающие "лапки":
$text = preg_replace('/["\'`„“’]/u', '»', $text);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
samodum
@samodum
Регулярками это не решить. Нужно писать свою функцию на основе стека LIFO
Ответ написан
delphinpro
@delphinpro
frontend developer
Готовые решения не подойдут? Кроме кавычек и все остальное "оттипографит" https://www.artlebedev.ru/typograf/webservice/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.
CENTRA Новокузнецк
от 50 000 руб.
от 1 500 до 2 500 usd.
25 марта 2019, в 17:13
10000 руб./за проект
25 марта 2019, в 15:16
1000 руб./за проект