我需要在一串名字中找到一个给定的词
I need to find a given word in a string of names
sudo:x:27:mike,david,dash,bart,pablo,jack
。该字符串包含一些仅由大写字母分隔的名称。如果我说我想知道 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
如果input
是您提到的字符串,name
是您要查找的名称:
name in input.rpartition(':')[2].split(',')
将 return 您正在寻找的布尔值。
在我的环境中,以下内容按预期工作:
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
请注意正则表达式为case-sensitive,例如如果您以大写形式指定他的名字作为用户输入,它将找不到 Mike。
sudo:x:27:mike,david,dash,bart,pablo,jack
。该字符串包含一些仅由大写字母分隔的名称。如果我说我想知道 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
如果input
是您提到的字符串,name
是您要查找的名称:
name in input.rpartition(':')[2].split(',')
将 return 您正在寻找的布尔值。
在我的环境中,以下内容按预期工作:
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
请注意正则表达式为case-sensitive,例如如果您以大写形式指定他的名字作为用户输入,它将找不到 Mike。