2016-04-15 25 views
1

[###:###]を正規表現置換を使用して文字列[###:###]other random textの先頭から削除する方法を解明しようとしています。正規表現:この[#####:#####]を文字列から削除する

私が試した:

line = '[123:456]othertext' 
print re.sub(r'^[\d*:\d*],'',line) 

をしかし、これは後ろのブラケット葉:'[]othertext'

問題ここでは、ブラケットは、伝統的に正規表現キャプチャグループを示していることです。だから私は、エスケープキー\\でそれらを無視しようとした:

line = '[123:456]othertext' 
print re.sub(r'^\\[\d*:\d*\\],'',line) 

そして、これは文字列への変更示さなかった:私は正しく正規表現式をフォーマットするにはどうすればよい'[123:456]othertext'

を?

+3

シングルバックスラッシュを参照してくださいは、生の文字列リテラルで使用されるべきです。 –

+0

'line.rpartition( ')' [ - 1]'の何が問題なのですか? – styvane

+0

@ user3100115これは私が提供した例ではうまくいくが、私が分割している文字列の多くは最初と最後の両方に括弧を使用している。この場合、正確な答えは成功します。 –

答えて

2

特別な正規表現メタキャラクタと短縮文字クラスをエスケープするには、生の文字列リテラルで単一のバックスラッシュを使用する必要があります。

使用

import re 
line = '[123:456]othertext' 
print re.sub(r'^\[\d*:\d*\]','',line) 
#    ^ ^
# => othertext 

Python demo

関連する問題