Сведения о вопросе

DUNKER

16:03, 1st July, 2020

Теги

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

Просмотров: 495   Ответов: 4

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

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



  Сведения об ответе

#hash

18:03, 1st July, 2020

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

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


  Сведения об ответе

VERSUION

18:03, 1st July, 2020

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

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

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

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


  Сведения об ответе

COOL

18:03, 1st July, 2020

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

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

Смотрите пример Флуббы.


  Сведения об ответе

SEEYOU

18:03, 1st July, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться