我有一些最初由加号连接的字符串,其中包括正则表达式字符串。这是一个示例:
"Level 4: " + re.sub(r"(\w)([A-Z])", r"\1 \2", talents[1]) + "\n\n"
但是,我一直想使用更适当的格式。我对f弦做了一些研究,我想在这里使用它们。我是这样尝试的:
f'Level 4: {re.sub(r"(\w)([A-Z])", r"\1 \2", talents[1])} \n\n'
但是,我的编辑器对具有反斜杠的表达式片段不屑一顾。在这种情况下,f弦不是合适的工具吗?
编辑: 按照@jwodder的要求,这是我从Python中获取的错误(我在3.6上)
SyntaxError: f-string expression part cannot include a backslash
答案 0 :(得分:3)
您无法在f字符串中插入带反斜杠的表达式,当前为a restriction by design。您可以将其分为两个语句:
subst = re.sub(r"(\w)([A-Z])", r"\1 \2", talents[1])
msg = f'Level 4: {subst} \n\n'
(附带说明:目前有一项提案(PEP 536),以放松这种限制以使原始代码按预期工作,但尚未接受或实施。)