2012-04-29 93 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 = '/^[:]/'; 
相关问题