re.sub

2016-04-27 1 views
2

私は、次の文字列を持っている:私がしようとすると、文字とそれの後にすべてのものを取り除くとき、それが一致していない、しかしre.sub

s = u'アガサ・クリスティー 奥さまは名探偵 ~パディントン発4時50分~(字幕版)' 

を:

>>> print re.sub(r'\(.+$', '', s) 
アガサ・クリスティー 奥さまは名探偵 ~パディントン発4時50分~(字幕版) 

アガサ・クリスティー 奥さまは名探偵 ~パディントン発4時50分~ 

は、どのように私は、文字列だけであることをなるだろうか?

答えて

2

re.sub()のすべてのパラメータが同じタイプ(strまたはunicode)であることを確認する必要があります。試してみてください:

# encoding: utf-8 

import re 
s = u'アガサ・クリスティー 奥さまは名探偵 ~パディントン発4時50分~(字幕版)' 
print re.sub(ur'\(.+$', u'', s) 
+0

ありがとうございます。これにより、問題が解決されます。 – David542

+0

're.sub(u '(。* $'、 ''、s)'の場合にも機能します。 – Quinn

+0

これは本当ですが、@ccfですが、 're.sub(ur '\(。+ $'、 '()'、s)'を実行してもうまくいきません。だから、私は 'unicode' - すべてのargsのify、ちょうどの場合。 –

関連する問題