2012-09-19 33 views
5

我有preg_replace函數,我打電話併爲了便於閱讀而放在多行上,但正則表達式中的*/字符混淆了註釋。如何在不將所有這些行全部移動到一行的情況下對其進行註釋?如何評論PHP中正則表達式的* /部分

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

回答

9

你可以使用不同的正則表達式分隔符:

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

編輯: 的分隔符是PCRE(Perl兼容普通Expresssion)的功能。不需要PHP配置來使用不同的分隔符。

Regexp Quote-Like Operators

...你可以使用任何對非字母數字,非空白字符 作爲分隔符。這對匹配包含「/」的路徑名稱 特別有用,以避免LTS(傾斜牙籤綜合徵)。

Quote and Quote-like Operators

非包圍分隔符使用相同的字符前後,但 四種ASCII括號(圓,角,廣場,捲曲)所有巢

的這些都是有效的:

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

看看PHP's documentation on PCRE Patterns看到一個非常好的概述。

+0

和PHP自動檢測不同的分隔符?或者我必須在某個地方設置? – BFTrick

+0

我剛剛更新了答案,提供了更多信息來回答有關分隔符的問題。 – jimp

+1

你,先生,真棒。 :) – BFTrick