Python 如何使用re获取具有类似格式的多个变量?
我多次尝试获取具有类似模式的字符串 例如,对于我的字符串“Python 如何使用re获取具有类似格式的多个变量?,python,regex,Python,Regex,我多次尝试获取具有类似模式的字符串 例如,对于我的字符串“SeNetworkLogonRight=*S-1-5-11,*S-1-5-32-544”,我试图获取“*S-1-5-11”和“*S-1-5-32-544”并将它们附加到列表中。我试着做了以下几点: >>> test = "SeNetworkLogonRight = *S-1-5-11,*S-1-5-32-544" >>> print(re.findall('[*].[^.]*\d$', test))
SeNetworkLogonRight=*S-1-5-11,*S-1-5-32-544
”,我试图获取“*S-1-5-11
”和“*S-1-5-32-544
”并将它们附加到列表中。我试着做了以下几点:
>>> test = "SeNetworkLogonRight = *S-1-5-11,*S-1-5-32-544"
>>> print(re.findall('[*].[^.]*\d$', test))
Result obtained:
['*S-1-5-11,*S-1-5-32-544']
如何分别获取这些值并以这种格式将其附加到列表中
['*S-1-5-11', '*S-1-5-32-544']
在下列情况下,您可以匹配星号和除逗号以外的任何1+字符:
r'\*[^,]+'
详细信息
-星号(必须转义,因为它是一个特殊的正则元字符,否则)\*
-与逗号以外的1个或多个字符匹配的否定字符类[^,]+
请尝试
r'\*[^,]+'
Hi Wiktor,谢谢您的帮助。
import re
test = "SeNetworkLogonRight = *S-1-5-11,*S-1-5-32-544"
print(re.findall(r'\*[^,]+', test))
# => ['*S-1-5-11', '*S-1-5-32-544']