[英]python re for exact match number and string
我試圖匹配一個字符串,如果它完全匹配,而忽略大小寫。 以下是我的字符串值不同但仍匹配的代碼。
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 = aa
不匹配,則k = AAA
和v = aaA
應該匹配(意思是忽略大小寫)。
你的意思是..... if k == v:
不知道為什么要為此使用RegEx,但是無論出於何種原因,ypou都可以使用字符串的開頭和字符串的末尾進行匹配。
k = re.compile(r"^99$")
進行不區分大小寫的比較的規范方法是使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.