据我所知,python正则表达式引擎不支持部分忽略大小写。这是一个使用不区分大小写的正则表达式的解决方案,该表达式随后测试令牌是否为大写。
#! /usr/bin/env pythonimport retoken_re = re.compile(r'uses+([a-z0-9]+)s+pre', re.IGNORECASE)def find_token(s): m = token_re.search(s) if m is not None: token = m.group(1) if token.isupper(): return tokenif __name__ == '__main__': for s in ['Use HELLO1 pre', 'USE hello1 CODE', 'this does not match', ]: print s, '->', print find_token(s)
这是程序的输出:
Use HELLO1 pre -> HELLO1USE hello1 CODE -> Nonethis does not match -> None



