如何在Python中为正则表达式的一部分设置ignorecase标志?
是否有可能在Python中实现以下简单的功能:
#!/usr/bin/perlmy $a = 'Use HELLO1 code';
if($a =~ /(?i:use)\s+([A-Z0-9]+)\s+(?i:code)/){
print "$1\n";
}
字符串中间的记号字母总是大写。其余单词的字母可以有大小写(USE,USE,Use,CODE,CODE,CODE等)
回答:
据我所知,python正则表达式" title="python正则表达式">python正则表达式引擎不支持部分忽略大小写。这是一个使用不区分大小写的正则表达式的解决方案,该表达式随后测试令牌是否为大写。
#! /usr/bin/env pythonimport re
token_re = re.compile(r'use\s+([a-z0-9]+)\s+code', re.IGNORECASE)
def find_token(s):
m = token_re.search(s)
if m is not None:
token = m.group(1)
if token.isupper():
return token
if __name__ == '__main__':
for s in ['Use HELLO1 code',
'USE hello1 CODE',
'this does not match',
]:
print s, '->',
print find_token(s)
这是程序的输出:
Use HELLO1 code -> HELLO1USE hello1 CODE -> None
this does not match -> None
以上是 如何在Python中为正则表达式的一部分设置ignorecase标志? 的全部内容, 来源链接: utcz.com/qa/401446.html