簡體   English   中英

python re獲取確切的匹配數和字符串

[英]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= 999v = 999則匹配其他所有情況均不匹配。 像明智的做法,如果k =AAAv = aa不匹配,則k = AAAv = 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM