我对以下任何语言的字母使用以下内容:
text = regex.sub("[^\p{alpha}\d]+"," ",text
如果存在这样的等价,我可以使用p{alpha}
将字母转换为小写字母吗?这个正则表达式看起来怎么样?
答案 0 :(得分:24)
>>> re.sub('[AEIOU]+', lambda m: m.group(0).lower(), 'SOME TEXT HERE')
'SoMe TeXT HeRe'
答案 1 :(得分:5)
正如oxtopus建议的那样,您只需将字母转换为带有text.lower()
的小写版本(不需要正则表达式)。这也适用于Unicode字符串(À - >à等)
答案 2 :(得分:2)
我相信你可以在这里找到答案:http://docs.python.org/library/re.html#re.sub
你可以提供一个tolower函数,它将匹配对象带到sub方法,该方法将返回替换字符串
答案 3 :(得分:0)
您可以更改re.findall("([A-Z]+)", text)
以使用您需要的任何正则表达式。这将只是通过匹配,并用其小写等效替换每个匹配:
text = 'ABCDEF_ghjiklm_OPQRSTUVWXYZ'
for f in re.findall("([A-Z]+)", text):
text = text.replace(f, f.lower())
print text
输出是:
abcdef_ghjiklm_opqrstuvwxyz