sudo:x:27:mike,david,dash,bart,pablo,jack
。此字符串包含一些仅由cama分隔的名称。如果我说我想知道mike是否在字符串中,我希望我的程序能够查找给定的名称。但如果我问是否" pa"在字符串中,程序会说" pa"在字符串中,即使" pa"不是名字,而是名称的一部分。如何将每个名称分开甚至更好,将其设置为一种列表,以便更容易识别给定名称是否在组中?
这是我的程序到目前为止所看到的:
import re
user = str(input("What user are you looking for?\n"))
txt = open("group.txt", "r")
for line in txt:
if re.match("(.*)sudo(.*)", line):
if <!where I need the code!>:
print(user + " is a sudoer")
break
else:
print(user + " is not a sudoer")
break
答案 0 :(得分:0)
如果input
是您提到的字符串,name
是您要查找的名称:
name in input.rpartition(':')[2].split(',')
将返回您正在寻找的布尔值。
答案 1 :(得分:0)
在我的环境中,以下内容按预期工作:
import re
user = str(input("What user are you looking for?\n"))
txt = open("group.txt", "r")
for line in txt:
if re.match("(.*)sudo(.*)", line):
if re.match("sudo.+(:|,)%s(,|$)" % user, line):
print(user + " is a sudoer")
break
else:
print(user + " is not a sudoer")
break
请注意,正则表达式区分大小写,例如如果您以大写形式指定其名称作为用户输入,则无法找到 Mike 。