2011-04-08 46 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

相关问题