如何在Python中为正则表达式的一部分设置ignorecase标志?

是否有可能在Python中实现以下简单的功能:

#!/usr/bin/perl

my $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 python

import 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 -> HELLO1

USE hello1 CODE -> None

this does not match -> None

以上是 如何在Python中为正则表达式的一部分设置ignorecase标志? 的全部内容, 来源链接: utcz.com/qa/401446.html

回到顶部