python - 使用正则表达式捕获方括号内的文本

标签 python regex

我在这里看到问题: 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]。如何访问第二场比赛?

最佳答案

你的表达式中只有一个组,所以你只能得到那个组。第 1 组是捕获组,第 0 组是整个匹配文本;在你的表达中,它们是一回事。如果您省略了 (...) 括号,您将只有一个组 0。

如果你想获得所有匹配,使用re.findall() .这将返回匹配组列表(或组 0,如果表达式中没有捕获组):

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

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

相关文章:

python - python中模仿 'ppoints' R函数

python - 将 CSV 文件的内容转换为字典

python - 在 flask 中放一 block cookies

javascript - 零到多个范围的正则表达式,例如 : "[12,128]"/ "[45,545][7445,78656]"

javascript - 正则表达式分割问题

python - 如何在 pygame 中在屏幕顶部显示分数?

python - 在 Debian 操作系统上使用 pandas 从 github 存储库读取 csv 文件时出现奇怪的 csv 输出

php - MySQL 正则表达式在 php 脚本中失败

python - 用于正则表达式替换文本的 Sublime Text 3 API 插件

java - 在JAVA中组合字符和字符串的正则表达式