python - 使用完全匹配正则表达式时在 Python 中格式化原始字符串
问题描述
fr
前缀可以组合f
和r
标记。
但是当谈到正则表达式的完全匹配时,它似乎无法很好地格式化原始字符串:
import re
RE1 = r'123'
RE2 = re.compile(fr'@{3} {RE1}')
那么,RE2.pattern
意志就变成了'@3 123'
,
但我想要的是'@{3} 123'
。
解决方案
您必须转义围绕3
这样的大括号,否则它们将被解释为字符串插值:
import re
RE1 = r'123'
RE2 = re.compile(fr'@{{3}} {RE1}')
print(RE2)
这会产生:
@{3} 123
参考:https ://www.python.org/dev/peps/pep-0498/
请注意,在结果字符串值中出现文字大括号的正确方法是将大括号加倍:
>>> f'{{ {4*10} }}' '{ 40 }' >>> f'{{{4*10}}}' '{40}'
推荐阅读
- tensorflow - TensorFlow - 在 TF1.14 中,我如何将 RaggedTensor 变成张量或如何填充它?
- azure - Azure 数据工厂 - 启用 git n azure 数据工厂时,触发器不起作用
- angular - 无法绑定到 Angular 9 自定义指令
- java - 后台线程中的进度条.setProgress(variable)
- snakemake - 从配置文件传递通配符约束字典
- python - ID不同时的Web Scraping产品
- ios - 将变量从 ViewController 传递回前一个,但变量没有更新?
- swift - UITableView Swift 所需的设计建议
- python - python中的&位操作
- keras - 将填充数据返回 LSTM