2013-07-13 64 views
1

有一個regx的示例: 「one two」使用此regx將\ b(\ w +)(\ s)(\ w +)\ b替換爲$ 3 $ 2 $ 1,然後獲取「兩個一」 現在我想與Python應用re.sub來實現這一點:如何使用python替換模式

s="one two" 
print re.sub(r"\b(\w+)(\s)(\w+)\b","$3$2$1",s) 

該輸出$ 3 $ 2 $ 1,不要「兩個一」。如何可以我這樣做在Python?

回答

2

你在Python使用\number用於打印匹配結果:

>>> s="one two" 
>>> print re.sub(r"\b(\w+)(\s)(\w+)\b",r"\3\2\1",s) 
two one 

請注意,您必須使它原始字符串,否則你就必須做\\3 \\2 \\1(即逃離反斜槓)

+0

謝謝非常多,這可以幫助我 – jimwan

+0

如果我使用這個雷克斯,那麼它應該是什麼? (\ s)(?P \ w +)\ b「' – jimwan

+0

@jimwan看起來你正在分組三件事物,所以不應該只是'\ 3 \ 2 \ 1'? – TerryA