2012-04-29 66 views
2

我想刪除冒號只有當它的字符串的第一個字符。我試過以下,但它不起作用。任何幫助,將不勝感激:刪除冒號如果它是第一個字符

//remove the colon if its the first character.. 

$pattern = '/^:/'; 
$replace = ''; 
$tweet = preg_replace($pattern, $replace, $tweet); 
+0

是你確定你的代碼首先是好的嗎?冒號':'不必轉義。也許你需要像'/ ^:+ /'這樣的東西? – 2012-04-29 10:03:20

回答

3

逃避冒號:

$pattern = '/^\\:/'; 
+0

謝謝你的工作 – 2012-04-29 09:59:15

+2

我必須承認我對此感到莫名其妙。冒號不是正則表達式元字符,因此它不必爲正則表達式引擎轉義。我也不知道爲什麼它必須從字符串處理中逃脫。如果它*有必要轉義它,你需要一個反斜槓,而不是兩個反斜槓,因爲它們會編碼一個反斜槓。所以總而言之,我不明白@ LukeBream的問題首先出現,以及這個答案如何解決問題。你能開導我嗎? – 2012-04-29 10:08:33

+0

@TimPietzcker至於雙反斜槓 - 只是python的一種習慣。它只用一個反斜槓工作,並且表達式在意義AFAIK中是相同的。至於冒號,參見'preg_quote'的文檔:'特殊的正則表達式字符是:。 \ + *? [^] $(){} =! < > | :-' – 2012-04-29 10:16:32

2

你也可以把結腸中由自己設定,這可能是更容易閱讀:

$pattern = '/^[:]/'; 
相關問題