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

2024-10-01 02:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我多次尝试获取具有类似模式的字符串

例如,对于我的字符串“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']

Tags: 字符串testre列表格式模式resultprint
1条回答
网友
1楼 · 发布于 2024-10-01 02:23:54

在下列情况下,您可以匹配星号和除逗号以外的任何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']

相关问题 更多 >