2017-04-22 82 views
1

下劃線或連字符下面是代碼:蟒蛇重要匹配字符串

import re 
a = "safe-Zoned-area" 
b = "Safe-zoned-Area" 
print(re.search(a, b, re.IGNORECASE)) 
c = "safe_Zoned-area" 
d = "Safe-zoned-Area" 
print(re.search(c, d, re.IGNORECASE)) 

我能在我的第一個print語句匹配區分大小寫字符串。

用戶將在上面的代碼中提供輸入,假定已在上面的代碼示例變量d,

有時用戶輸入safe_zoned面積。一些用戶將進入Safe_Zoned_Area。

這裏的要點是我們應該匹配用戶輸入下劃線或連字符在安全區域和區域劃分區域之間。

注意:這些是模式和文本中的變量。

d =從用戶輸入由我 C = GET定義

請幫助。

+0

替換'-'用'[-_]' –

+0

你的問題不明確:模式是如何寫的?手動,在設計時,還是一些用戶輸入?其他可能的情況是什麼?如果第一個分隔符是連字符,第二個分隔符是否應該是連字符? –

+0

'pattern =「safe( - | _)zoned( - | _)area」'。然後're.search(pattern,text,re.IGNORECASE)' – TasosGlrs

回答

1

定義你的正則表達式爲

r"Safe[-_]zoned[-_]Area" 

這裏,[-_]字符類將匹配-_

看到一個Python test

import re 
ss = [ "safe-Zoned-area","safe_Zoned-area","safe-Zoned_area"] 
rx = r"Safe[-_]zoned[-_]Area" 
print([re.search(rx, s, re.IGNORECASE) for s in ss]) 
1
import re 

c = "safe_Zoned-area" 
d = "Safe-zoned-Area" 
print(re.search(d,c.replace('_','-'), re.IGNORECASE)) 
c = "safe-Zoned-area" 
d = "Safe[-_]zoned[-_]Area" 
print(re.search(d,c, re.IGNORECASE)) 
+0

@Manoj,請你解釋一下print(re.search(',',' - '),re.IGNORECASE )) – asteroid4u

+0

@ asteroid4u而不是用'[-_]'代替所有' - ',我們用' - '代替所有'_' – SmartManoj