我有一些最初用加号连接并包含正则表达式字符串的字符串。这是一个例子:
"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
您无法在 f 字符串中插入带有反斜杠的表达式,目前这是设计限制。您可以将其分为两个语句:
subst = re.sub(r"(\w)([A-Z])", r"\1 \2", talents[1])
msg = f'Level 4: {subst} \n\n'
(旁注:目前有一个提案(PEP 536)放宽此类限制,使原始代码按预期工作,但尚未被接受或实现。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)