在Python

时间:2017-04-18 13:43:18

标签: python string find

我想在列表的每一行中搜索一个字符串,它会匹配每个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,因此这是一个限制。

3 个答案:

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