我正在尝试匹配一个字符串,如果它完全匹配,而忽略大小写。下面是我的字符串值不同但仍匹配的代码。
import re
k = "999"
v = "99"
if (re.search(v, k , re.IGNORECASE)):
print "xyz"
k = "AAA"
v = "aa"
if (re.search(v, k , re.IGNORECASE)):
print "xyz"
在上面的代码k = 999 , v = 99
中,但匹配和k = AAA, v = aa
匹配。我真正需要的是,如果k= 999
和v = 999
匹配,则其他所有情况都不匹配。如果k = AAA
和v = aaA
不匹配,那么明智k =AAA
和v = aa
应匹配(含义忽略大小写)。
答案 0 :(得分:3)
您的意思是..... if k == v:
?
答案 1 :(得分:2)
不确定为什么你需要RegEx,但无论出于何种原因,ypou可以使用字符串的开头和字符串的结尾来匹配。
k = re.compile(r"^99$")
答案 2 :(得分:1)
进行不区分大小写比较的规范方法是使用lower()
或upper()
:
<强>代码:强>
def matches(str1, str2):
return 'matches' if str1.lower() == str2.lower() else 'does not match'
测试代码:
data = (
("999", "99"),
("999", "999"),
("999X", "999x"),
("999Xx", "999x"),
)
def matches(str1, str2):
return 'matches' if str1.lower() == str2.lower() else 'does not match'
for datum in data:
print('%s %s %s' % (datum[0], matches(*datum), datum[1]))
<强>结果:强>
999 does not match 99
999 matches 999
999X matches 999x
999Xx does not match 999x