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

标签 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 个以上字符:

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']

关于python - 如何使用 re 获取具有相似格式的多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54398602/

相关文章:

c++ - 如何只获得给定的捕获组 <regex> C++

regex - 正则表达式以匹配两个单独的短语

JavaScript RegExp 手动设置索引

regex - perl - 使用正则表达式获取子字符串

python - 在 Mac 上安装图形工具后,我收到 ValueError : Namespace Gtk not available

python - django 同一个查询的 id 和 date 不一致,为什么?

Python "callable"属性(伪属性)

javascript - 正则表达式去除除科学计数法之外的所有非数字字符

python - PyQt app.exec() 似乎是非阻塞的

python - Selenium 可以在不复制的情况下使用特定的 Firefox 配置文件吗