我想在列表的每一行中搜索一个字符串,它会匹配每个UP / LOW组合的情况
例如:如果我输入“all”,它将搜索“all”“All”ALL“”aLL“”aLl“...等。它的工作方式就像我认为的文本文档中的高级搜索一样。
更多细节:如果输入了'all'
,那么该行中出现的任何字符串都将返回FOUNDED:'all', 'alL', 'All', 'ALL', 'aLL', 'aLl', 'AlL', 'ALl'
以下是我如何使用正确的字符串查找
string = "all"
line[i].find(string)
如果line
为“全部”,则结果为not found
,因此这是一个限制。
答案 0 :(得分:2)
>>> lines = ['All', 'ALL', 'all', 'WALL', 'BLAA', 'Balls']
>>> for line in lines:
... if 'all' in line.lower():
... print(line)
All
ALL
all
WALL
Balls
答案 1 :(得分:1)
尝试列表理解,
In [25]: line = ['All', 'ALL', 'all', 'WALL', 'BLAA', 'Balls']
In [26]: [i for i in line if 'all' in i.lower() ]
Out[26]: ['All', 'ALL', 'all', 'WALL', 'Balls']
答案 2 :(得分:1)
有几种方法可以实现这一目标。他们在这里:
<强> 1。更改您要搜索的字符串的大小写:
line[i].lower().find(string.lower())
或
line[i].upper().find(string.upper())
我们在这里滥用了原始字符串的不变性,因为虽然我们将.upper()
应用于它们,但由于我们没有做任何分配,因此它们不会被更改。<\ n / p>
<强> 2。使用re
模块也会有所帮助:
import re
re.search('all', line[0], re.IGNORECASE)
或
re.search('(?i)all',line[0])