Python 如何编写正则表达式以仅从该字符串输出中获取用户

Python 如何编写正则表达式以仅从该字符串输出中获取用户,python,regex,Python,Regex,下面是我的python子流程模块的输出。现在,我想从这里获取第一个用户名,比如root、daemon和continuew。我尝试过,但无法编写确切的正则表达式来获取用户 root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin 使用split而不是regex for line in output.split('\n'):

下面是我的python子流程模块的输出。现在,我想从这里获取第一个用户名,比如root、daemon和continuew。我尝试过,但无法编写确切的正则表达式来获取用户

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

使用split而不是regex

for line in output.split('\n'):
     print line.split(':')[0]
>>>root
>>>daemon
....

根据您的评论,您首先不需要正则表达式。因此,您可以逐行迭代输出(
str.splitlines()
),使用
str.split(“:”)
)拆分该行,并获取第一个结果(
result[0]
)。这要求输出一致,否则将失败。

请指定您尝试过的内容。请包括您尝试过的内容。是否需要正则表达式?为什么不在冒号上拆分并获取结果中的第一个元素。另外,如果您确定
是分隔符,那么
line.split(“:”)[0]
就可以了。在pythex.org中,我尝试了[^:],它将使用:冒号分隔字符串,但在找到第一个冒号并检测到下一行之前,如何拒绝,我们如何做这部分不能在字符串上使用readlines()。上面的结果是字符串类型first splitlines()将字符串转换为列表,我不能再次使用split,因为现在它是一个列表,您需要迭代该列表的输出。