python - 如果在另一个带有“*”符号的字符串中找到该字符串,我如何返回 True?
问题描述
我正在设置一个脚本,当在另一个字符串中检测到一个字符串时,我需要返回一个布尔值。
我尝试使用该功能str.find()
,但它不符合我想要获得的内容。
str1 = 'test*'
str2 = 'test12345'
考虑到 '*' 是 string 之后的所有内容,我如何返回 bool if 'test'
is in 。str2
'test'
我试过.find()
用作:
str2.find(str1.replace('*','')
我正在尝试寻找一种更简单的方法来做到这一点。
提前致谢。
重复?
该问题已被标记为重复,但链接的主题没有给出包含 * 符号的字符串的答案。
解决方案
因此,如果您只打算使用一个搜索字符串,是的,建议的答案将起作用,但如果您的格式可以扩展为,"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
理想情况下,您的搜索关键字应存储在列表中,而不是分隔字符串中。
推荐阅读
- elasticsearch - 仅当数组中存在所有值时,弹性搜索才选择文档
- c# - 我在 Windows 10 上用 VS2017 编译了一个安装项目。它可以在 XP 上运行吗?
- ionic-framework - 离子梯度路径问题
- javascript - RegularExpressionValidator:不允许使用 EnableClientScript 破折号或破折号
- c# - C# WPF NotifyIcon BalloonTip 和 TrayBalloonTipClicked 事件
- haskell - How exactly does `IO`'s >>= work under the hood?
- latex - 使用彩色行时,如何消除表格行和列之间的间距?
- android - 奥利奥服务开始后,手机每 5 秒振动一次
- mysql - SQL Left Join via foreign keys, how to avoid duplicate columns?
- ios - 无法在 Swift 4 中将值打印到标签。在展开可选值错误时意外发现 nil