Hvordan kan jeg få på kampene når du bruker preg_replace i PHP?

stemmer
49

Jeg prøver å ta tak i store bokstaver på et par ord og pakk dem i span koder. Jeg bruker preg_replace for ekstrakt og tara formål, men det er ikke gi ut noe.

preg_replace(/[A-Z]/, <span class=\initial\>$1</span>, $str)
Publisert på 05/08/2008 klokken 00:35
kilden bruker
På andre språk...                            


4 svar

stemmer
51

Du må sette mønsteret i parentes /([A-Z])/, som dette:

preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
Svarte 05/08/2008 kl. 00:36
kilden bruker

stemmer
27

\0 vil også matche hele samsvarende uttrykk uten å gjøre en eksplisitt fangst bruke parentes.

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

Som alltid, kan du gå til php.net/preg_replace eller php.net/<whatever søkeord> for å søke i dokumentasjonen raskt. Quoth dokumentasjonen:

\ 0 eller $ 0 refererer til teksten matchet av hele mønsteret.

Svarte 28/08/2008 kl. 09:02
kilden bruker

stemmer
8

Fra preg_replace dokumentasjon på php.net:

erstatning kan inneholde referanser av formen \ n eller (siden PHP 4.0.4) $ n, med den sistnevnte form er den foretrukne. Hver slik henvisning vil bli erstattet av teksten fanget av den n'te parentes mønster.

Se Flubba eksempel.

Svarte 05/08/2008 kl. 01:39
kilden bruker

stemmer
6

Bruk parenteser rundt ønsket fangst.

Svarte 23/06/2009 kl. 17:54
kilden bruker

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