如何使用re获取具有相似格式的多个变量?

时间:2019-01-28 09:09:59

标签: 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))


Result obtained:
['*S-1-5-11,*S-1-5-32-544']

如何分别获取值并将其以这种格式添加到列表中?

['*S-1-5-11', '*S-1-5-32-544']

1 个答案:

答案 0 :(得分:1)

在以下之后,您可以匹配一个星号和除逗号以外的任意1个以上的字符:

r'\*[^,]+'

详细信息

  • \*-星号(否则必须转义,因为它是特殊的正则表达式元字符)
  • [^,]+-否定的字符类,匹配逗号以外的1个或多个字符。

Python demo

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']
相关问题