2013-05-25 24 views
2

比方说,我们想用正则表达式来捕获某些东西,使用rawstring来定义模式,哪个模式具有重复元素,以及里面的变量。而且我们也希望使用format()字符串格式表单。这个怎么做?如何格式化内部具有不同表达式的原始字符串?

import re 
text = '"""!some text' 
re.findall(r'"{3}{symbol}some\stext'.format(symbol='!'), text) 

,但此行带给我们一个IndexError

# IndexError: tuple index out of range 

所以,我的问题是:如何在已格式化大括号的表达,并重复花括号表达格式化原始字符串内?

在此先感谢!

回答

7

逃生大括号与大括号

>>> import re 
>>> text = '"""!some text' 
>>> re.findall(r'"{{3}}{symbol}some\stext'.format(symbol='!'), text) 
['"""!some text'] 

但是最好是只使用%在这种情况下格式化。

+0

哇,谢谢!我会尽可能地答复你的答案。所以,不要让我,但:P –

相关问题