2013-05-03 44 views
0

我想讀一些PHP代碼,並想知道爲什麼preg_replace總是有斜槓。在正則表達式的,我用C++寫的,我不這樣做同樣的事情,不知道爲什麼斜線在preg_replace

PHP:preg_replace('/blah/', '', $str)但在C++我會做一個正則表達式只用字符串"blah"

我能得到這裏有一些說明嗎?什麼是開始和結束的斜線?謝謝

回答

6

他們只是正則表達式分隔符。從PHP manual documentation on Delimiters

甲分隔符可以是任何非字母數字的,非反斜槓,非空白字符 。

常用的分隔符是斜槓(/),井號(#)和 波浪線(~)。以下是有效分隔的 模式的所有示例。

+0

我喜歡@符號。 – ceejayoz 2013-05-03 21:46:00

+2

作爲手冊說..分隔符可以是任何非字母數字,非反斜槓,非空白字符.'所以這是可能的。 ^。^ – reikyoushin 2013-05-03 21:46:42

3

它們是分隔符,允許您添加修飾符,例如/ blah/i用於不區分大小寫的正則表達式。

在我意識到的情況下,使用斜線來自perl或shell/sed。

在php中,它們不是強制性的,因爲您可以使用其他字符。例如,「!blah!i」也起作用。另外還有一個特殊的括號括號,因爲你不需要轉義它,所以它更不容易出錯:「{blah} i」。

+0

因此,C++ regex也是如此嗎? – jamesatha 2013-05-03 21:36:57

+0

我不確定C++正則表達式使用哪種風格。它們與Perl相同,因爲preg_ *函數代表Perl兼容。 – 2013-05-03 21:40:03