我正在使用下面的正则表达式来匹配三种不同类型的字符串。我很难确定在哪里添加不区分大小写的模式,以匹配大写或小写(例如re.IGNORECASE
或([A-Za-z0-9]+))
。我应该尝试不同的东西吗?
regex = re.compile( "(%s|%s|%s)" % ( re.escape( userstring ), re.escape( userStrHEX ), re.escape( userStrASCII ) )
答案 0 :(得分: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)