2011-04-27 51 views
1

我正在使用下面的正則表達式來匹配三種不同類型的字符串。我有確定的難度在哪裏添加不區分大小寫的模式,以re.IGNORECASE([A-Za-z0-9]+))匹配大寫或小寫(例如,如果我只是嘗試不同的東西?我想實現一個有效的正則表達式模式

regex = re.compile("(%s|%s|%s)" % (re.escape(userstring), re.escape(userStrHEX), re.escape(userStrASCII)) 

回答

5

只需將其添加爲第二參數re.compile()

x = re.compile("(%s|%s|%s)" % (re.escape(userstring), re.escape(userStrHEX), re.escape(userStrASCII)), re.IGNORECASE) 

爲了使它有點更容易閱讀,我們可以提取格式化參數到一個單獨的元組:

args = (re.escape(userstring), re.escape(userStrHEX), re.escape(userStrASCII)) 
x = re.compile("(%s|%s|%s)" % args, re.IGNORECASE) 
+1

@ user706808 @unwind或''args = tuple(map(re.escape,(userstring,userStrHEX,userStrASCII)))'' – eyquem 2011-04-27 17:11:05

+0

@eyquem謝謝...非常經濟的方法! – suffa 2011-04-27 17:53:45