如何用不同的表达式格式化原始字符串? [英] How to format raw string with different expressions inside?

查看:14
本文介绍了如何用不同的表达式格式化原始字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

比方说,我们想用正则表达式捕捉一些东西,使用 rawstring 来定义模式,哪个模式有重复的元素,里面有变量.而且我们还想使用 format() 字符串格式化形式.如何做到这一点?

Let's say, we want to catch something with regex, using rawstring to define the pattern, which pattern has repeating elements, and variables inside. And we also want to use the format() string formatting form. How to do this?

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

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

But this line leads us to an IndexError:

# IndexError: tuple index out of range

所以,我的问题是:如何格式化原始字符串,如果它有格式化大括号表达式,并在里面重复大括号表达式?

So, my question is: how to format a raw string if it has formatting curly-braces expression, and repeating curly-braces expression inside?

提前致谢!

推荐答案

用大括号转义大括号

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

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

However it is better to just use % formatting in this situation.

这篇关于如何用不同的表达式格式化原始字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆