我正在尝试使用python从关键字中找到匹配值.我的值存储在list(my_list)中,在下面的例子中我试图找到'Webcam'这个词.如果它完全匹配,我只想返回这个词.
使用item.find可以工作,但仅在大小写匹配时(即大写和小写必须正确).但是我想要返回该项目,无论如何,但是,我不希望匹配像'Webcamnew'这样的字符串的所有实例,所以使用any()方法将无法工作.有谁知道如何做到这一点..?
my_list = ['webcam', 'home', 'Space', 'Maybe later', 'Webcamnew']
for item in my_list:
if item.find("Webcam") != -1:
print item
Run Code Online (Sandbox Code Playgroud)
my_list = ['webcam', 'home', 'Space', 'Maybe later', 'Webcamnew']
for item in my_list:
if 'webcam' == item.lower()
print item.lower()
Run Code Online (Sandbox Code Playgroud)
注意:字符串是不可变的Python- 它不会修改列表中的字符串.
如果由于某种原因您确实需要比较不区分大小写的字符串(而不是生成大小写相同的字符串),则可以将正则表达式与该re.IGNORECASE标志一起使用。对于您似乎想做的事情,这是一个糟糕的主意,但是代码是:
import re
my_list = ['webcam', 'home', 'Space', 'Maybe later', 'Webcamnew']
for item in my_list:
if re.match("webcam$",item, flags=re.I): # re.I == re.IGNORECASE
print item
Run Code Online (Sandbox Code Playgroud)
这是一个坏主意的原因是,使用正则表达式进行简单匹配就像使用反铲挖掘桩孔。当然可以,但是它昂贵,费时,并且有机会引入您从未想到的错误,直到您不小心将吊杆从客厅的窗户上晃了下来。