2016-09-19 27 views
-1

我想在列表中找到Andy。无论是安迪进来字符串大写或小写的程序应该返回True如何忽略python中单词的大写字母?

String1 ='Andy is an awesome bowler' 
String2 ='andy is an awesome bowler' 
String3 ='ANDY is an awesome bowler' 

我做这样

if 'Andy' in String1: 
    print ('success') 
else: 
    print("Nothing") 

但它是为Andy唯一的工作不是为了andyANDY。我不想使用Pattern匹配。通过使用lower()Andy可以转换为小写,但我需要同时忽略较低和大写。可能吗?

+1

可能重复[如何将字符串转换为小写字母Py thon?](http://stackoverflow.com/questions/6797984/how-to-convert-string-to-lowercase-in-python) – idjaw

+0

用户正则表达式..... –

+3

为什么不只是降低整个字符串,并看到如果'andy'在字符串中? – idjaw

回答

3

您可以转换字符串为大写或小写第一:

String1 ='Andy is an awesome bowler' 
String2 ='andy is an awesome bowler' 
String3 ='ANDY is an awesome bowler' 

if 'andy' in String1.lower(): # or this could be if 'ANDY' in String1.upper(): 
    print('success') 
else: 
    print('Nothing') 
+0

K我有很多字符串形式的数据。首先降低整个字符串然后匹配并不会更好。 – Humty

+0

@ Farhan.K您应该添加一个'andy'.lower()来澄清**转换必须在两个字符串上完成,才能使解决方案真正不区分大小写**如问题和示例中所述。 – jadsq

1

如果你确信你的字符串只包含ASCII字符,请使用以下方法:

if 'andy' in string1.lower(): 
    do something 

如果你比较字符串涉及unicodedata:

import unicodedata 

def normalize_caseless(text): 
    return unicodedata.normalize("any_string", text.casefold()) 

def caseless_equal(left, right): 
    return normalize_caseless(left) == normalize_caseless(right) 
相关问题