正则表达式,用于可选地匹配字符串的结尾(可选$)

时间:2011-02-07 06:27:38

标签: python regex

我想提取,

ID=(?P<group>.+?);

从字符串

,'ID ='是常量,组可以是任何东西。比赛的位置会因字符串而异。

在大多数情况下这很好,但偶尔匹配将在字符串的末尾,并且分号将丢失。在这种情况下,我如何选择匹配字符串的结尾?我尝试了以下方法:

ID=(?P<group>.+?)[;$]

但这似乎不起作用,我想是因为$不是一个角色(它是一个锚?)。

这是使用re模块在Python中完成的,并且所有正常行为(例如使用原始字符串)已被考虑(我认为!)。

2 个答案:

答案 0 :(得分:21)

您可以使用(;|$)来匹配它。或者,如果您不想捕获,(?:;|$)

答案 1 :(得分:1)

如果未启用选项re.MUTILINE($表示字符串结尾)

ID=(?P<group>)[^;]+

如果启用了选项re.MUTILINE($表示行尾)

ID=(?P<group>)[^;\r\n]+

顺便说一句,你捕获的是什么:(?P&lt; group &gt;)和';'之间的关系?