首页 > 解决方案 > 如果在另一个带有“*”符号的字符串中找到该字符串,我如何返回 True?

问题描述

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

我尝试使用该功能str.find(),但它不符合我想要获得的内容。

str1 = 'test*'
str2 = 'test12345'

考虑到 '*' 是 string 之后的所有内容,我如何返回 bool if 'test'is in 。str2'test'

我试过.find()用作:

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

我正在尝试寻找一种更简单的方法来做到这一点。

提前致谢。

重复?

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

标签: pythonstringfind

解决方案


因此,如果您只打算使用一个搜索字符串,是的,建议的答案将起作用,但如果您的格式可以扩展为,"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

理想情况下,您的搜索关键字应存储在列表中,而不是分隔字符串中。


推荐阅读