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

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

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

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

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

Войти через TM ID
Похожие вопросы
TopHit.ru Москва
от 90 000 до 100 000 руб.
Интерно Ростов-на-Дону
от 35 000 до 50 000 руб.
Ticketland.ru Москва
от 120 000 руб.