Задать вопрос
@sotex2

Как удалить часть слов?

Как сделать регулярное выражения для поиска в самом коде DOM. границу для захвата я беру -
<div class="fw-bold">Финансовая отчетность за 2024 год</div>
и нужна регулярка, чтобы искала по слову "Финансовая отчетность", а все что после удалялось (не учитывалось), так как на разных страницах может поменяться хвост. например здесь - "за 2024 год", а на другой страницы может быть другой год например - "за 2022 год".
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
regexp для этого не совсем подходит есть соответствующие библиотеки для каждого языка.
Правельно было бы пользовать именно их
<div\s+class=["']fw-bold["']\s*>\s*(Финансовая отчетность)(?:\s+.*)?<\/div>

— ищет тег с классом "fw-bold", допускает наличие пробелов и кавычек.
\s* — допускает пробелы перед содержимым.
(Финансовая отчетность) — захватывает нужную часть текста.
(?:\s+.*)? — необязательная не захватывающая группа, которая включает все, что идет после нужной части, например, "за 2024 год".
<\/div> — закрывающий тег .

<?php

$html = '
<div class="fw-bold">Финансовая отчетность за 2024 год</div>
';

$pattern = '/(<div\s+class=["\']fw-bold["\']\s*>)(.*?Финансовая отчетность)(?:\s+.*)?(<\/div>)/i';

// Замена: оставляем только начало, нужный текст и закрывающий тег
$replacement = '$1$2$3';

$result = preg_replace($pattern, $replacement, $html);

echo $result;
?>
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы