2014-04-20 53 views
1

我想使用的preg_match和正則表達式在PHP檢查字符串或者用「+44」開頭或「0」,但我怎麼能做到這一點,而不+讀爲匹配前面的字符有一次或多次?會(+44 | 0)工作嗎?+符號的正則表達式PHP

+1

使用反斜線進行轉義。 '(\ +44 | 0)' – Pietu1998

+1

實際上是雙反斜槓。 PHP本身不知道,知道的正則表達式語法,所以你必須把它作爲一個字符串,其中正則表達式中的反斜槓需要再次逃脫。 – Wormbo

+0

[**相關... **](http://stackoverflow.com/questions/399078/what-special-characters-must-be-escaped-in-regular-expressions) – HamZa

回答

2

你可以做到這一點的幾種方法。在那些我知道二:

一種是逃避+與轉義字符

^(\+44|0) 

或將+字符類[]它意味着字符作爲它的字面意思內(即反斜槓)。

^([+]44|0) 

^是錨字符,這意味着基於您的標誌(修正)的串/行的開始。

3

反斜槓是正則表達式的默認轉義字符。如果在PHP字符串中使用了反斜槓,那麼您可能必須避免使用反斜槓,所以您可以使用類似"(\\+44|0)"這樣的字符串常量。正則表達式本身將是(\+44|0)

4

使用與^來表示開始和一個反斜槓\逃脫+字符。所以你檢查

^\+44 | ^0 

在PHP中的正則表達式存儲在一個字符串,你並不需要雙反斜線\混淆的東西,只是用單引號代替,如:

$regexp = '^\+44 | ^0'; 

事實上,你甚至不需要使用任何東西,這個工程太:

$regexp = "^\+44 | ^0"; 
+1

正如我將增加更多的到格局,很擔心,除非有括號也不會分開吧,我決定去與\\的方法,但感謝你教我這個太:) – RJE95

+0

你的歡迎。 –