2013-05-28 97 views
0

我一直在爲這似乎是一輩子的代碼而努力,似乎無法讓它起作用。Python:Sub並不會替代替換模式

translation = re.sub("'''[a-zA-Z0-9].*?'''", "<b>[what do I put here to copy [a-zA-Z0-9].*?</b>", translation) 

Here I'm trying to replace " ''' [text] ''' " with " <b> [text] </b>. What would I have to put between <b> and </b> to make it copy across the text? 

預先感謝您!

回答

2

使用捕獲組和\1引用它:

translation = re.sub(r"'''([a-zA-Z0-9].*?)'''", r"<b>\1</b>", translation) 
+0

嗨Janne,謝謝你的回答。我試圖創建一個組,但是當我打印新字符串時,標記顯示之間的一個小方框。 – user2421580

+0

pattern =「'''([a-zA-Z0-9]。*?)'''」 pattern_obj = re.compile(pattern,re.MULTILINE) translation = pattern_obj.sub(「\ 1 「,翻譯) – user2421580

+0

@ user2421580使用原始字符串」r「\ 1」'(前面的r生成一個原始字符串)很重要。否則'\ 1'是一個控制字符。或者反斜槓加倍:'\\ 1' –

0
translation = re.sub("'''([a-zA-Z0-9]*)'''", r"<b>\1</b>", translation) 

類似的東西?