【问题标题】:Python RegEx match results are too minimal, please advisePython RegEx 匹配结果太少,请指教
【发布时间】:2012-07-06 17:39:10
【问题描述】:

我很困惑为什么这个 Python 正则表达式没有给我预期的结果。在下面的示例中,我希望输出为“/w:document/w:body/w:sectPr”,但实际结果(Python v3.2)是“/w:sectPr”。我为以下示例简化了我的问题。

import re

path = "/w:document/w:body/w:sectPr/w:footerReference"
rxSetting = re.compile('(/\w+:[^/]+){3}')   # top-three
matchSetting = rxSetting.match(path)
setting = matchSetting.group(1)
print(setting)

当我用正则表达式检查它时,它符合我想要的。我需要做点什么吗 特定于 Python 来完成这项工作?

感谢您的建议。

【问题讨论】:

    标签: regex python-3.x


    【解决方案1】:

    在这里试试这个:

    rxSetting = re.compile('((?:/\w+:[^/]+){3})')
    

    如果您想捕获(分组)前三个,您将需要整个正则表达式周围的括号。

    【讨论】:

    • 谢谢!现在我觉得我错过了明显的解决方案。
    • 没问题!如果您认为它回答了您的问题,请给这个答案打勾。
    【解决方案2】:

    如果你想要整场比赛,你也可以使用.group(0).group()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 2013-11-24
      • 1970-01-01
      相关资源
      最近更新 更多