2016-07-09 6 views
1

pythonでREモジュールを使用したとき、私は問題を抱えている:PythonでREグループを使って文字列を置き換えるには?

import re 
url='http://list.xxx.com/0-20356-1-0-0-0-0-0-0-0-269036.html' 
re_rule=re.compile('.+20356\-(\d{1,3})-0-0-0.+') 
new_url=re_rule.sub('2 \1') 

私が望むように、NEW_URLは 'http://list.xxx.com/0-20356-2-0-0-0-0-0-0-0-269036.html' であるが、Pythonの戻りnew_url=2でしょう。
reモジュールを使用しているときに間違いを犯したことが分かりました。私はどのミスをしたのか、どのように修正するのですか?

答えて

1

あなたの例を考えれば、なぜreを使用しても構いませんか?

url = 'http://list.xxx.com/0-20356-1-0-0-0-0-0-0-0-269036.html' 
new_url = url.replace('-1-', '-2-') 
print(new_url) 

は、あなたが探しているものを生成します。

http://list.xxx.com/0-20356-2-0-0-0-0-0-0-0-269036.html 
+0

私の与えられたコードは一例ですので、実際に私がリセットするのURLがたくさんある、機能を書いているので、私は再を試してみました。 あなたの答えは私の問題を解決しました、そして、あなたは私にreを使って達成する方法を教えてくれますか? – nick

+2

あなたは本質的に 're.sub 'で同じことをすることができます。 're.sub( ' - 1-'、 '-2'、url)'は、上記の 'url.replace'コードと同じものを生成します。 re.subには、より汎用性のあるフラグがいくつか追加されています。ここでドキュメントをご覧ください:https://docs.python.org/2/library/re.html#re.sub –