PHP preg_replace удалить текст из подстроки и конечного тега? - PullRequest
1 голос
/ 14 апреля 2020

У меня есть эта строка (html) и я хочу удалить все из ".cf" до конца абзаца.

$html = <p>text to keep .cf text to remove </p>

Итак, все между .cf. (включая .cf) и

должны быть удалены, чтобы иметь:
$html = <p>text to keep</p>

Я пытаюсь несколькими способами, но не могу найти решение (думаю, я смешиваю пробелы и точку)

$html = preg_replace('/ \.cf (.*?)<\/p>/i','</p>',$html);

$html = preg_replace('#{{ \.cf (.*?)</p>}}#s','</p>',$html);

1 Ответ

1 голос
/ 14 апреля 2020

Это должно сработать.

$html = '<p>text to keep .cf text to remove </p>';
$html = preg_replace('/\s+\.cf\s*(.*?)<\/p>/i','</p>',$html);
var_dump($html);

\s представляет пробел .

+ представляет один или несколько .

* представляет ноль или более .

Просто для большей ясности.

\s+\.cf\s* означает, что будет one or more white space char before .cf and zero or more white space char after .cf

...