Python 用于可选匹配字符串结尾的正则表达式(可选$)
我想提取Python 用于可选匹配字符串结尾的正则表达式(可选$),python,regex,Python,Regex,我想提取 ID=(?p.+?) 从字符串来看,“ID=”是一个常量,组可以是任何内容。比赛的位置在比赛中会有所不同 但是,在大多数情况下这是可以的,偶尔匹配会出现在字符串的末尾,分号会丢失。在这种情况下,如何选择匹配字符串的结尾?我尝试了以下方法: ID=(?P<group>.+?)[;$] ID=(?P.+?)[;$] 但我想这似乎不起作用,因为$不是一个角色(它是一个锚?) 这是在Python中使用re模块完成的,所有正常行为(如使用原始字符串)都已考虑在内(我想!)。您可以
ID=(?p.+?)代码>
从字符串来看,“ID=”是一个常量,组可以是任何内容。比赛的位置在比赛中会有所不同
但是,在大多数情况下这是可以的,偶尔匹配会出现在字符串的末尾,分号会丢失。在这种情况下,如何选择匹配字符串的结尾?我尝试了以下方法:
ID=(?P<group>.+?)[;$]
ID=(?P.+?)[;$]
但我想这似乎不起作用,因为$不是一个角色(它是一个锚?)
这是在Python中使用re模块完成的,所有正常行为(如使用原始字符串)都已考虑在内(我想!)。您可以使用(;|$)
来匹配它。或者,如果不希望捕获,(?:;|$)
如果未启用re.multiline选项($表示字符串结束)
ID=(?P)[^;]+
如果启用了re.MUTILINE选项($表示行尾)
ID=(?P)[^;\r\n]+
顺便问一下,你捕获了什么:在(?p)和“;”之间是什么 多行代码的优点是,这段代码只有一行,所以我还没有真正研究过。你最后一行的问题把我弄糊涂了,直到我意识到我有了答案?在捕获组之外,现在已经修复,希望这更清晰一些。
ID=(?P<group>)[^;]+
ID=(?P<group>)[^;\r\n]+