4

私は機能を持っています:

find = re.compile(ur"\s+(Word)\s+", flags = re.U)
text = find.sub('\1', text)

Wordそして、この「 」(接頭辞/接尾辞のスペースあり)のようなパターンを見つけて、「Word」(これらのスペースなし)に置き換えたいと思います。ルビーでは、私は前にこのようなものでそれをしました:

text.gsub('\s+(Word)\s+', '\1')

編集:つまり、これらのスペースを新しい文字列で変更する必要があるか、状況に応じて別の何かを変更する必要があります。

4

2 に答える 2

3

問題は、Pythonが「\1」を特別なバックスラッシュ文字として解釈していることです。生の文字列を使用する必要があります。これrは、文字列の直前に追加することで実行できます。変化する

find.sub('\1', text)

find.sub(r'\1', text)

例:

text = "Replace this Word "
find = re.compile(ur"\s+(Word)\s+", flags = re.U)
find.sub(r'\1', text)
# 'Replace thisWord'
于 2012-08-07T12:37:55.023 に答える
1

これを試して:

regcom = re.compile('\s+Word\s+', re.UNICODE)
print regcom.sub(u'Word', u'This is a     Word     ')
u'This is aWord'
于 2012-08-07T12:37:08.687 に答える