2015-05-14 58 views
2

我想利用匹配大小写选项。我有一段代码来搜索列表中的字符串。我想有一种更好的方法来做同样的事情。python正则表达式匹配案例选项

searchString = "maki" 
itemList = ["Maki", "moki", "maki", "Muki", "Moki"] 

resultList = [] 
matchCase = 0 

for item in itemList: 
    if matchCase: 
     if re.findall(searchString, item): 
      resultList.append(item) 
    else: 
     if re.findall(searchString, item, re.IGNORECASE): 
      resultList.append(item) 

我可以用re.findall(searchString, item, flags = 2)因为re.IGNORECASE基本上是一个整数(2),但我不知道哪个数字将意味着“matchcase”选项。

+2

''返回小写列表,你并不真的需要一个正则表达式这个问题。 – Maroun

回答

3

可以实施的理解里面的不区分大小写:

searchString = "maki" 
itemList = ["Maki", "moki", "maki", "Muki", "Moki"] 

resultList =[] 
matchCase = 1 

if matchCase: 
    resultList = [x for x in itemList if x == searchString] 
else: 
    resultList = [x for x in itemList if x.lower() == searchString.lower()] 

print resultList 

它将打印['maki']如果matchCase1,并且['Maki', 'maki']如果它被设置为0

[对于x x.lower()在itemList中见IDEONE demo

+0

我刚刚意识到,我的原始列表很简单。如果我们在像''makiMuki“,”mikimaKi“等那样的itemList中有项目呢? – Prag

+0

如果您在列表中搜索'makimuki'不区分大小写的'makiMuki',应该找到它。您可以请我的IDEONE演示来展示您现在遇到的问题吗? –