如果在另一个带有'*'符号的字符串中找到该字符串,如何返回True?

时间:2019-07-05 12:30:48

标签: python string find

我正在设置一个脚本,当在另一个字符串中检测到一个字符串时,我需要返回布尔值。

我尝试使用函数str.find(),但它与我想要获得的功能不匹配。

str1 = 'test*'
str2 = 'test12345'

如果'test'位于str2中,并且考虑到字符串字符串'test'之后的所有内容都是'*',那么如何返回布尔值。

我尝试将.find()用作:

str2.find(str1.replace('*','')

我正在尝试寻找一种更简便的方法。

谢谢。

重复了吗?

该问题已被标记为重复,但链接的主题未给出包含*符号的字符串的答案。

3 个答案:

答案 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

的页面