Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式-命名组不完全匹配_Python_Regex - Fatal编程技术网

Python正则表达式-命名组不完全匹配

Python正则表达式-命名组不完全匹配,python,regex,Python,Regex,我有以下Python正则表达式模式: (?P<key>.*)(?P<operator><=>|=|>=|>|<=|<|!=|<>)(?P<value>.*) 你能帮我匹配一下完整的操作员吗=在这个例子中,使用上面的正则表达式模式,并解释为什么我的原始模式不起作用?提前谢谢你 您需要对第一个捕获组使用惰性匹配,否则,*将“吃掉”第一个符号,因为它是贪婪的,并且还可以匹配备选方案中的任何符号: (?P<key

我有以下Python正则表达式模式:

(?P<key>.*)(?P<operator><=>|=|>=|>|<=|<|!=|<>)(?P<value>.*)

你能帮我匹配一下完整的操作员吗=在这个例子中,使用上面的正则表达式模式,并解释为什么我的原始模式不起作用?提前谢谢你

您需要对第一个捕获组使用惰性匹配,否则,
*
将“吃掉”第一个符号,因为它是贪婪的,并且还可以匹配备选方案中的任何符号:

(?P<key>.*?)(?P<operator><=>|!=|>=|<=|<>|[=><])(?P<value>.*)

(?P.*(?P |!=|>=|我正在查看文档中的懒惰/贪婪主题,但我不知道如何将其应用到我的正则表达式中。感谢您提供的固定代码片段和解释!不客气。只需确保您不使用此正则表达式处理长输入字符串。此外,如果您有新行,请在编译正则表达式时使用
re.S
,或添加<代码>(?s)
在正则表达式模式的开头。
(?P<key>.*?)(?P<operator><=>|!=|>=|<=|<>|[=><])(?P<value>.*)