我想在字符串中搜索通配符。
这是我正在使用的代码。
with open('file0001.mbx', 'r') as infile,open("ESAL_V.txt",'a') as ESAL_V, open("ESAL.txt", 'a') as ESAL:
for line in infile:
if (str('ESAL15973P'))in line:
ESAL_V.write(line)
elif line.startswith("ESAL"):
ESAL.write(line)
我想用通配符替换字符串搜索中的几个字符。这就是我想要搜索的内容
if (str('ESAL*****P'))in line:
但这不起作用。如何在我的字符串搜索中包含这些外卡?
答案 0 :(得分:3)
也许您可以使用正则表达式来模仿通配符搜索:
import re
if re.search(r'ESAL.{5}P', line):
ESAL_V.write(line)
这会检查line
字符串' ESAL'接着是五个字符,然后是' P'。如果找到这样的字符串,则if
子句为True
,否则为False
。
如果您希望您的通配符匹配仅匹配数字而不是任何字符(包括空格,标点符号等),请使用[0-9]{5}
而不是.{5}
。< / p>
答案 1 :(得分:2)
如果您不熟悉正则表达式,可以使用模块fnmatch,它的工作方式类似于通配符,但是您不能指定星号'*'匹配的字符数。
import fnmatch
if fnmatch.fnmatch("*ESAL*P*",line):