【问题标题】:Python lambda if statement re.subPython lambda if 语句 re.sub
【发布时间】:2023-04-07 00:54:01
【问题描述】:

所以我使用以下正则表达式来解析文本并从特定字典中获取信息:

re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1],text)

我想要做的是,只有当它要替换的是单独字典中的键时才替换它。逻辑上应该是这样的:

re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)

现在如果我要运行以下命令,我会收到以下语法错误:

>>> re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)
  File "<stdin>", line 1
    re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)
                                                                                    ^
SyntaxError: invalid syntax

怎么只能这样替换?

【问题讨论】:

    标签:
    python
    regex
    replace
    lambda