在我的代码中:
d={ 'h' : 'hhh' , 'l' : 'lll'}
enpattern = re.compile(r'(.)\1?')
str='HeLlo'
result = [x.group() for x in enpattern.finditer(str)]
data=''.join(map(lambda x:D.get(x,x),result))
print data
此代码从字符串中获取每个char并将其与字典中的键进行比较,并为我提供相应的值。但是这里使用finditer()方法时如何忽略CASE灵敏度?
答案 0 :(得分:1)
根据您的评论,您希望获得hhhellllllo
,这就是您所期望的
result = [m.lower() for x in enpattern.finditer(my_string) for m in x.group()]
data = ''.join(map(lambda x: d.get(x, x),result))
并且不要将变量命名为str
,因为它会影响内置str
函数
注意:您根本不需要RegEx来获取该输出。它是一个简单的单行
print ''.join(map(lambda x: d.get(x, x), my_string.lower()))
# hhhellllllo