2013-04-01 199 views
0

我需要匹配等基團:Python的正則表達式匹配逃脫字符

:data: 
:abc'e12\:3\:text: 
在一個字符串

,這意味着

:(?P<data>.*?): 

而且還允許逃脫結腸\:

我最好的嘗試看起來像這個:

:(?P<data>((?<=\\):|.)*?): 
+0

您是否嘗試過使用開始和結束錨點來匹配第一個和最後一個冒號? (即使用'^'和'$') – Jerry

回答

3
p = re.compile(r':((\\:|[^:])+):') 
print p.match(":abc'e12\:3\:text:").group(0) 
0

您可以始終確保您使用「^」和「$」獲得起始和結束字符:

^:(.+):$ 

您也可以替換你想得正則表達式類型「+」。

+0

使我的問題更加清晰。對不起 –

+0

更確切地說,這隻會匹配整個字符串。無論如何,謝謝你的時間 –