【发布时间】:2017-09-15 16:28:21
【问题描述】:
我正在尝试将正则表达式写入具有以下格式的字符串
12740(34,12) [abc (a1b2c3) (a2b3c4)......] myId123
目前,我有这样的东西
\((?P<expression>\S+)\)
但是有了这个,我只能捕获方括号内的字符串。
无论如何我可以捕获方括号之前的整数,以及末尾的 id 以及方括号内的字符串。
小括号内的字符串数量将不相同。我也可以有一个看起来像这样的字符串
10(3,2) [abc (a1b2c3)] myId1
我知道我可以使用蛮力为上述表达式编写一个简单的正则表达式。但是当方括号内的字符串数量不断变化时,谁能帮我写一个。
提前致谢
【问题讨论】:
-
您不能使用带有
re的单个正则表达式来捕获任意数量的组。匹配中的组数与模式中定义的组数一样多。 -
@WiktorStribiżew 哦,删除..!!
-
@WiktorStribiżew 这是对每个“使用正则表达式解析 HTML/XML”问题的欺骗(无论 OP 是否意识到)。我们是否没有规范的“Regex/CFG”问题来结束这些问题?也许我们应该。
-
@JaredSmith:这与 HTML/XML 解析无关。可以使用带有 PyPi
regex库的单个正则表达式来完成。 -
@WiktorStribiżew 匹配任意嵌套的平衡分组字符?还是我误解了 OP 想要什么?