将字母转换为小写

时间:2011-09-28 19:33:37

标签: python regex

我对以下任何语言的字母使用以下内容:

text = regex.sub("[^\p{alpha}\d]+"," ",text

如果存在这样的等价,我可以使用p{alpha}将字母转换为小写字母吗?这个正则表达式看起来怎么样?

4 个答案:

答案 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