Подтвердить что ты не робот

Как я могу получить совпадения при использовании preg_replace в PHP?

Я пытаюсь захватить заглавные буквы из нескольких слов и обернуть их в теги span. Я использую preg_replace для извлечения и обертывания, но ничего не выводит.

preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
4b9b3361

Ответ 1

Вам нужно поместить шаблон в круглые скобки /([A-Z])/, например:

preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)

Ответ 2

\0 также будет соответствовать всему согласованному выражению без явного захвата с использованием скобок.

preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)

Как всегда, вы можете перейти к php.net/preg_replace или php.net/<whatever search term > быстро найти документацию. Распечатайте документацию:

\ 0 или $0 относится к тексту, сопоставляемому всем шаблоном.

Ответ 3

Из документация preg_replace на php.net:

замена может содержать ссылки на форму \n или (начиная с PHP 4.0.4) $n, причем последняя форма является предпочтительнее. Каждая такая ссылка будет заменен текстом, захваченным по n-ой скобке.

См. пример Flubba.

Ответ 4

Используйте скобки вокруг желаемого захвата.