Jak mogę dostać się na mecze przy użyciu preg_replace w PHP?

głosy
49

Próbuję chwycić liter o kilka słów i zawinąć je w tagach rozpiętości. Używam preg_replace dla celów wyodrębnić i owijania, ale to nie jest nic wyprowadzania.

preg_replace(/[A-Z]/, <span class=\initial\>$1</span>, $str)
Utwórz 05/08/2008 o 01:35
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
50

Trzeba umieścić wzór w nawiasach /([A-Z])/, tak:

preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
Odpowiedział 05/08/2008 o 01:36
źródło użytkownik

głosy
26

\0 będzie również pasować do całego dopasowanego wyrażenia nie robiąc wyraźne przechwytywanie używając nawiasów.

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

Jak zawsze, można przejść do php.net/preg_replace lub szukaj php.net/<whatever term> szybko przeszukać dokumentację. Rzekła dokumentacji:

\ 0 lub $ 0 odnosi się do tekstu dopasowanego przez cały wzór.

Odpowiedział 28/08/2008 o 10:02
źródło użytkownik

głosy
8

Z dokumentacji preg_replace na php.net:

Wymiana może zawierać odniesienia do postaci \ n lub (od PHP 4.0.4) $ n, z drugiej formie jest preferowana. Każda taka informacja zostanie zastąpiony tekstem przechwyconego przez n'th nawiasach wzoru.

Patrz przykład Flubba użytkownika.

Odpowiedział 05/08/2008 o 02:39
źródło użytkownik

głosy
6

Użyj nawiasów wokół pożądanego przechwytywania.

Odpowiedział 23/06/2009 o 18:54
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more