Ответ 1
Вам нужно поместить шаблон в круглые скобки /([A-Z])/
, например:
preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
Я пытаюсь захватить заглавные буквы из нескольких слов и обернуть их в теги span. Я использую preg_replace для извлечения и обертывания, но ничего не выводит.
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
Вам нужно поместить шаблон в круглые скобки /([A-Z])/
, например:
preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
\0
также будет соответствовать всему согласованному выражению без явного захвата с использованием скобок.
preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)
Как всегда, вы можете перейти к php.net/preg_replace или php.net/<whatever search term > быстро найти документацию. Распечатайте документацию:
\ 0 или $0 относится к тексту, сопоставляемому всем шаблоном.
Из документация preg_replace на php.net:
замена может содержать ссылки на форму \n или (начиная с PHP 4.0.4) $n, причем последняя форма является предпочтительнее. Каждая такая ссылка будет заменен текстом, захваченным по n-ой скобке.
См. пример Flubba.
Используйте скобки вокруг желаемого захвата.