Заменить строку внутри кавычек, чтобы избежать атрибутов тега - PullRequest
0 голосов
/ 06 апреля 2020

Мне нужно заменить только текст внутри строки внутри кавычек, я хочу игнорировать текст внутри атрибутов тега. Я хочу добавить некоторые теги для замены.

У меня есть:

This text is in <font style="color:#f00;">red</font>. This text have "quotes and some spaces", more text inside "quotes"

Результат, который я хочу:

This text is in <font style="color:#f00;">red</font>. This text have "<b>quotes and some spaces</b>", more text inside "<b>quotes</b>"

Важно игнорировать текст внутри атрибутов тега. Я хочу избежать совпадения "color: # f00;" -> " color: # f00; "

Спасибо за вашу большую поддержку.

1 Ответ

0 голосов
/ 06 апреля 2020

Я нашел решение:

$str = 'This text is in <font style="color:#f00;">red</font>. This text have "quotes and some spaces", more text inside "quotes"';

echo htmlentities(preg_replace('/"([a-zA-Z\s]*)"/', '<b>$1</b>', $str));

Результат:

This text is in <font style="color:#f00;">red</font>. This text have <b>quotes and some spaces</b>, more text inside <b>quotes</b>

Регулярное выражение, разрешающее только буквы и пробелы, выполняет работу: / "([a-zA-Z \ S] *) "/

...