我正在设置一个脚本,当在另一个字符串中检测到一个字符串时,我需要返回布尔值。
我尝试使用函数str.find()
,但它与我想要获得的功能不匹配。
str1 = 'test*'
str2 = 'test12345'
如果'test'
位于str2
中,并且考虑到字符串字符串'test'
之后的所有内容都是'*',那么如何返回布尔值。
我尝试将.find()
用作:
str2.find(str1.replace('*','')
我正在尝试寻找一种更简便的方法。
谢谢。
重复了吗?
该问题已被标记为重复,但链接的主题未给出包含*符号的字符串的答案。
答案 0 :(得分:0)
因此,如果您仅打算使用一个搜索字符串,则建议的答案将起作用,但如果格式可以扩展为"test\*hat\*jack"
,则应拆分字符串,然后确保拆分字符串的所有部分都位于主字符串。
示例:
keywords = "test\*hat\*jack"
masterStr = "I put my hat on jack as a test"
flag = True
for entry in keywords.split("*"):
if entry not in masterStr:
flag = False
return flag
理想情况下,您的搜索关键字应该存储在列表中,而不是使用限定的字符串。
答案 1 :(得分:0)
实际上,在少数用户的帮助下,我的问题的答案是:
str1 = 'test*'
str2 = 'test12345'
str.startswith(str1.replace('*',''))
如果True
以str1开头且没有str2
符号,它将返回*
。
答案 2 :(得分:0)
str1 = "test *"
str2 = "test11234"
strls1 = str1.split(" ") #convert the string to a list
strls2 = str2.split(" ")
def check(str1, str2):
for x in str1:
for y in str2:
if x == y:
return True
check(strls1, strls2)
如果字符串1的其余部分之间用空格分隔,则应该可以工作,尽管它有点粗糙。
Here是显示如何使用string.split
的页面