我想讀一些PHP代碼,並想知道爲什麼preg_replace總是有斜槓。在正則表達式的,我用C++寫的,我不這樣做同樣的事情,不知道爲什麼斜線在preg_replace
PHP:preg_replace('/blah/', '', $str)
但在C++我會做一個正則表達式只用字符串"blah"
我能得到這裏有一些說明嗎?什麼是開始和結束的斜線?謝謝
我想讀一些PHP代碼,並想知道爲什麼preg_replace總是有斜槓。在正則表達式的,我用C++寫的,我不這樣做同樣的事情,不知道爲什麼斜線在preg_replace
PHP:preg_replace('/blah/', '', $str)
但在C++我會做一個正則表達式只用字符串"blah"
我能得到這裏有一些說明嗎?什麼是開始和結束的斜線?謝謝
他們只是正則表達式分隔符。從PHP manual documentation on Delimiters:
甲分隔符可以是任何非字母數字的,非反斜槓,非空白字符 。
常用的分隔符是斜槓(
/
),井號(#
)和 波浪線(~
)。以下是有效分隔的 模式的所有示例。
它們是分隔符,允許您添加修飾符,例如/ blah/i用於不區分大小寫的正則表達式。
在我意識到的情況下,使用斜線來自perl或shell/sed。
在php中,它們不是強制性的,因爲您可以使用其他字符。例如,「!blah!i」也起作用。另外還有一個特殊的括號括號,因爲你不需要轉義它,所以它更不容易出錯:「{blah} i」。
因此,C++ regex也是如此嗎? – jamesatha 2013-05-03 21:36:57
我不確定C++正則表達式使用哪種風格。它們與Perl相同,因爲preg_ *函數代表Perl兼容。 – 2013-05-03 21:40:03
我喜歡@符號。 – ceejayoz 2013-05-03 21:46:00
作爲手冊說..分隔符可以是任何非字母數字,非反斜槓,非空白字符.'所以這是可能的。 ^。^ – reikyoushin 2013-05-03 21:46:42