2011-04-08 77 views
0

使用Python正則表達式,我想知道如何使用Python Regex匹配以下字符串?

  1. 如何匹配模式 ("Exercises...)("Chapter...)
  2. 如何更換("Exercises...)("Exercises...))("Chapter...)("Chapter...

例如:

("Exercises, 31" "#42")轉化爲("Exercises, 31" "#42"))

("Chapter 2 I Positive Borel Measures, 33" "#44")("Chapter 2 I Positive Borel Measures, 33" "#44"

感謝和問候!

+0

不完全確定你想做什麼......在練習之後添加一個')'並在'章節'之後刪除它? – Robus 2011-04-08 18:37:51

+0

@Robus:是的。這就是我想要做的。 – Tim 2011-04-08 18:39:19

回答

2
>>> import re 
>>> re.sub(r'(\("Exercises.*?\))', r'\1)', '("Exercises, 31" "#42")') 
'("Exercises, 31" "#42"))' 
>>> re.sub(r'(\("Chapter.*?)\)', r'\1', '("Chapter 2 I Positive Borel Measures, 33" "#44")') 
'("Chapter 2 I Positive Borel Measures, 33" "#44"' 
+0

謝謝!什麼是「r」在「r」(\(「Exercises。*?\)」)中的含義? – Tim 2011-04-08 18:40:25

+0

從http://docs.python.org/reference/lexical_analysis.html#string-literals: r'或'R'前綴的情況下,反斜槓後面的字符包含在字符串中而沒有改變,並且所有反斜槓都保留在字符串「,所以字符串'」\ n「'包含換行符,原始字符串''r'\ n「'包含一個反斜槓,後跟一個'n',你應該總是在Python中使用正則表達式的原始字符串 – 2011-04-08 18:46:04

+0

謝謝!我想知道」。*?「的含義。 )重複自己0次或更多次,或者是任意長度的字符序列,並且字符可以彼此不同? – Tim 2011-04-08 19:17:54