我在这里看到问题:
Regex to capture {}
这与我想要的相似,但我无法让它工作。

我的数据是:

[Honda] Japanese manufacturer [VTEC] Name of electronic lift control

我希望输出是

[Honda], [VTEC]

我的表达是:
m = re.match('(\[[^\[\]]*\])', '[Honda] Japanese manufacturer [VTEC] Name of electronic lift control')

我希望:
  • m.group(0) 输出 [Honda]
  • m.group(1) 输出 [VTEC]

  • 然而,两者都输出 [Honda] 。如何访问第二场比赛?

    最佳答案

    您可以使用 re.findall 来获取所有匹配项,但您将在列表中获取它们,并且您不需要捕获组:

    m = re.findall('\[[^\[\]]*\]', '[Honda] Japanese manufacturer [VTEC] Name of electronic lift control')
    

    提供 ['[Honda]', '[VTEC]'] 以便您可以得到每个:
    print(m[0])
    # => [Honda]
    
    print(m[1])
    # => [VTEC]
    

    关于python - 使用正则表达式捕获方括号内的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24330609/

    10-12 19:26