【问题标题】:Switching on regex matches打开正则表达式匹配
【发布时间】:2014-11-24 17:51:50
【问题描述】:

你能建议一个更好的方法来编写以下内容吗:

for r in replacements:

    m = pattern_1.match(r)
    if m:
        a.append((r,m.group(1),m.group(2),m.group(3)))
        continue

    m = pattern_2.match(r)
    if m:
        b.append((r,m.group(1),m.group(2),m.group(3)))
        continue

    if "import" in r:
        c.append(r)
    else:
        d.append(r)

我尝试了"if pattern_1.match(r) as m:",但遇到了无效的语法错误。这是未来的功能吗?我正在使用 2.6。

【问题讨论】:

    标签: python regex python-2.6


    【解决方案1】:
    for r in replacements:
      for pattern, dest in zip([pattern_1, pattern_2], [a, b]):
        m = pattern.match(r)
        if m:
            dest.append((r,m.group(1),m.group(2),m.group(3)))
            break
      else:
        (c if "import" in r else d).append(r)
    

    【讨论】:

      猜你喜欢
      • 2015-02-24
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2019-03-30
      • 2011-05-01
      相关资源
      最近更新 更多