【问题标题】:How to get the name of a regex named capturing group?如何获取名为捕获组的正则表达式的名称?
【发布时间】:2013-10-06 08:32:57
【问题描述】:

我正在尝试在 Python 中运行一个正则表达式,例如 :(?P<HEADER>\S+),我想获取捕获组的名称 ("HEADER") 以及它的匹配值。

我有许多不同的标题,所以它必须是通用的并且在代码中。

例如,如果我有(?P<key1>[regex1])(?P<key2>[regex2]),我想以编程方式获得key1key2

【问题讨论】:

    标签: python regex text python-3.x


    【解决方案1】:

    要获取比赛的所有详细信息(包括组名本身):

    >>> match = re.match("(?P<letter>A)", "A")
    >>> match.groupdict()
    {'letter': 'A'}
    

    【讨论】:

    • 我在问是否可以选择获取命名的捕获组?
    • 是的,我的代码示例没有回答这个问题吗?这是获取命名捕获组内容的两种方法...
    • 它不采样。我想要命名的捕获组,而不是它的内容。例如,我想从 regex pattren 中获取“字母”这个词,这样我就会得到内容。
    • @OshikawaL 在这种情况下使用匹配的groupdict() 方法。
    • @OshikawaL:看我的编辑。哦,邓肯也注意到了。但是你为什么不知道你刚刚执行的正则表达式中组的名称?
    猜你喜欢
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2011-03-03
    • 1970-01-01
    • 2020-10-07
    相关资源
    最近更新 更多