Удалить всё предложение в котором есть ссылка

112
15 февраля 2021, 15:10

Нужно решение, которое анализирует текст, находит предложение в котором присутствует ссылка/или просто слово определенно, и удаляет всё предложение. Т.е. предложение - это начало с большой буквы и заканчивается на символах окончания предложения - '.!?' Вот пример. Есть текст:

"Привет, как дела? Пройди по ссылке, <a href="www.dot.com">нажав сюда</a> и твоя жизнь изменится!"

После обработки должна получиться строка "Привет, как дела?".

Answer 1
$str = "Привет, как дела? Пройди по ссылке, <a href='www.dot.com'>нажав сюда</a> и твоя жизнь изменится!";
$sentences = preg_split('/(?<=[.?!])\s+(?=[а-яА-Я])/i', $str); // разбиваем строку на массив по регулярному выражению (элементами массива будут являться предложения)
foreach($sentences as $key => &$sentence) {
    if (strpos($sentence, "<a") !== false) { // если в предложении содержится подстрока <a href=", удаляем такое предложение
        unset($sentences[$key]);
    }
}
$sentences = implode(' ', $sentences); // объединяем оставшиеся элементы массива в строку
print_r($sentences); // выводим
READ ALSO
Как активировать curl в PHP на Windows? [дубликат]

Как активировать curl в PHP на Windows? [дубликат]

Раскомментировал строки extension=curl иextension_dir="ext"в phpini

118
Регулярное выражение по поиску ссылок

Регулярное выражение по поиску ссылок

Почему слово Anet программа воспринимает как часть доменаnet? Хотя если прописать просто net то, всё будет хорошо

110
проблемы с синхронизацией проекта с gradle

проблемы с синхронизацией проекта с gradle

Помогите пожалуйста не могу синхронизировать проект с gradle пишет bad_certificates хотя у меня в настройках сертификации с сервером принимаются автоматически...

96