使用Python的`re`模块将所有字符转换为小写

2 投票
2 回答
1600 浏览
提问于 2025-04-16 05:43

我正在使用re库来处理一些文本。其中一件我想做的事情是把字符串中的所有大写字母替换成小写字母。有没有简单的方法可以做到这一点?

2 个回答

2

如果你真的想用正则表达式(RegEx),你可以这样做:

import re
def swapcase(s):
  def changecase(m):
    if m.group("lower"):
      return m.group("lower").upper()
    elif m.group("upper"):
      return m.group("upper").lower()
    else:
      return m.group(0)
  return re.sub("(?P<lower>[a-z])|(?P<upper>[A-Z])", changecase, s)
print(swapcase(input()))

编辑

如果你想要所有的小写字母,可以试试这个:

def lower(s):
  import re
  return re.sub("[A-Z]", str.lower, s)

(注意:这里使用re模块并不是最好的选择。可以用string.lower。)

8
>>> s = "AbcD"
>>> s.lower()
'abcd'

如果你需要的话,还有一个叫做swapcase的方法。

可以查看这个链接了解更多: http://docs.python.org/library/stdtypes.html#string-methods

撰写回答