我有两个字符串:
1)“创建的帐户所有者共享规则test1”
2)“更新了帐户所有者共享规则test3:将CaseAccessLevel从“读/写”更改为“只读”
作为正则表达式匹配的结果,我想看看:
1)创建帐户所有者共享规则test1
2)更新了帐户所有者共享规则test3
分为4组:
1)(创建)(帐户)(所有者共享规则)(test1)
2)(更新)(帐户)(所有者共享规则)(test3)
为此,我尝试使用下一个python正则表达式:
'^(?P<action>^[^\s]+)\s(?P<target_object_label>.+)\s(?P<object_type>Owner\sSharing\sRule)\s(?P<object_label>.+)(?=:|$)
但是对于第二个字符串,第4组看起来像是“ test3:将CaseAccessLevel从“读/写”更改为“只读”。
本质上,正则表达式应该在行尾或':'字符之前停止,但贪婪的匹配不允许这样做。
预先感谢您的回答,
德米特里
您可以这样做:
^(?P<action>\S+)\
(?P<target_object_label>.+)\s
(?P<object_type>Owner\ Sharing\ Rule)\s
(?P<object_label>[^:\n]+) # stop before : or newline
请参阅regex101.com上的演示(注意不同的修饰符!)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句