如何使用正则表达式格式化 f 字符串?
How to format f-strings with regex expressions?
我有一些字符串最初是用加号连接的,并且包含正则表达式字符串。这是一个例子:
"Level 4: " + re.sub(r"(\w)([A-Z])", r" ", talents[1]) + "\n\n"
但是,我一直想使用更合适的格式。我对 f 弦做了一些研究,我想在这里使用它们。我这样试过:
f'Level 4: {re.sub(r"(\w)([A-Z])", r" ", talents[1])} \n\n'
但是,我的编辑对我咆哮着说有反斜杠的表达式片段。在这种情况下,f-strings 不是适合这项工作的工具吗?
编辑:
根据@jwodder 的要求,这是我从 Python 得到的错误(我在 3.6)
SyntaxError: f-string expression part cannot include a backslash
您不能在 f 字符串中插入带反斜杠的表达式,目前是 a restriction by design。您可以将其分成两个语句:
subst = re.sub(r"(\w)([A-Z])", r" ", talents[1])
msg = f'Level 4: {subst} \n\n'
(旁注:目前有提议(PEP 536)放宽这种限制以使原始代码按预期工作,但尚未被接受或实施。)
我有一些字符串最初是用加号连接的,并且包含正则表达式字符串。这是一个例子:
"Level 4: " + re.sub(r"(\w)([A-Z])", r" ", talents[1]) + "\n\n"
但是,我一直想使用更合适的格式。我对 f 弦做了一些研究,我想在这里使用它们。我这样试过:
f'Level 4: {re.sub(r"(\w)([A-Z])", r" ", talents[1])} \n\n'
但是,我的编辑对我咆哮着说有反斜杠的表达式片段。在这种情况下,f-strings 不是适合这项工作的工具吗?
编辑: 根据@jwodder 的要求,这是我从 Python 得到的错误(我在 3.6)
SyntaxError: f-string expression part cannot include a backslash
您不能在 f 字符串中插入带反斜杠的表达式,目前是 a restriction by design。您可以将其分成两个语句:
subst = re.sub(r"(\w)([A-Z])", r" ", talents[1])
msg = f'Level 4: {subst} \n\n'
(旁注:目前有提议(PEP 536)放宽这种限制以使原始代码按预期工作,但尚未被接受或实施。)