如何格式化包含不同表达式的原始字符串?

2024-05-19 14:31:05 发布

您现在位置:Python中文网/ 问答频道 /正文

比方说,我们想用regex捕捉一些东西,使用rawstring来定义模式,模式中有重复的元素和变量。我们还希望使用format()字符串格式表单。如何做到这一点

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

但这一行将我们引向一个IndexError

# IndexError: tuple index out of range

所以,我的问题是:如果原始字符串中包含格式化大括号表达式和重复大括号表达式,如何格式化它

提前谢谢


Tags: 字符串textreformat元素定义表达式格式
2条回答

用花括号退出花括号

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

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

使用f-strings(在Python 3.6中介绍):

a = 15
print(fr'Escape is here:\n but still {a}')

# => Escape is here:\n but still 15

相关问题 更多 >