2012-09-19 7 views
5

Ho la funzione preg_replace che sto chiamando e inserendo più righe per la leggibilità, ma i caratteri */ nella regex incasinano i commenti. Come posso commentare tutte queste righe senza spostarle tutte su una riga?Come commentare la */Parte di un'espressione regolare in PHP

return preg_replace('/.*/', 
    'Lorem Ipsum' . 
    'More Lorem Ipsum' 
    , 
    $foo); 

risposta

9

è possibile utilizzare un diverso carattere del modello regex delimitatore:

return preg_replace('#.*#', 
    'Lorem Ipsum' . 
    'More Lorem Ipsum' 
    , 
    $foo); 

EDIT: Il carattere di delimitazione è una caratteristica di PCRE (Perl Compatible espressione regolare non). Non è necessaria alcuna configurazione PHP per utilizzare un delimitatore diverso.

Regexp Quote-Like Operators

... è possibile utilizzare una qualsiasi coppia di non alfanumerici, caratteri non spazi bianchi come delimitatori. Ciò è particolarmente utile per la corrispondenza dei nomi dei percorsi che contengono "/", per evitare LTS (sindrome dello stuzzicadenti pendente).

Quote and Quote-like Operators

delimitatori non-bracketing utilizzano lo stesso avanti e indietro carattere, ma le quattro tipi di staffe ASCII (rotondo, angolo, piazza, graffe) tutto nido

Questi sono tutti validi:

'/.*/' 
'#.*#' 
'{.*}' /* Note that '{.*{' would be incorrect. */ 

Dai un'occhiata a PHP's documentation on PCRE Patterns per vedere davvero una buona panoramica.

+0

E php rileva automaticamente il diverso carattere delimitatore? O devo impostarlo da qualche parte? – BFTrick

+0

Ho appena aggiornato la risposta con ulteriori informazioni per rispondere alla tua domanda sul carattere delimitatore. – jimp

+1

Lei, signore, è fantastico. :) – BFTrick

Problemi correlati