python re用于完全匹配数字和字符串

时间:2017-05-05 03:41:07

标签: python python-2.7

我正在尝试匹配一个字符串,如果它完全匹配,而忽略大小写。下面是我的字符串值不同但仍匹配的代码。

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= 999v = 999匹配,则其他所有情况都不匹配。如果k = AAAv = aaA不匹配,那么明智k =AAAv = aa应匹配(含义忽略大小写)。

3 个答案:

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