当前位置: 首页 > 面试题库 >

使用正则表达式将python中的大写重复字母替换为单个小写字母

黄靖
2023-03-14
问题内容

我正在尝试将在字符串中重复两次的大写字母的所有实例替换为小写字母的单个实例。我正在使用以下正则表达式,并且能够匹配重复的大写字母,但是我不确定如何使要替换的字母变为小写。

import re
s = 'start TT end'
re.sub(r'([A-Z]){2}', r"\1", s)
>>> 'start T end'

如何使“ \ 1”小写?我不应该使用正则表达式来执行此操作吗?


问题答案:

传递一个函数作为repl参数。将MatchObject传递给此函数,并.group(1)给出第一个带括号的子组:

import re
s = 'start TT end'
callback = lambda pat: pat.group(1).lower()
re.sub(r'([A-Z]){2}', callback, s)

编辑
是的,您应该使用([A-Z])\1而不是([A-Z]){2}为了 _不_匹配,例如AZ

import re
s = 'start TT end'
re.sub(r'([A-Z])\1', lambda pat: pat.group(1).lower(), s) # Inline

给出:

'start t end'


 类似资料:
  • 我正在尝试使用正则表达式将大写字母替换为相应的小写字母。因此 变成 在Sublime的文本中。如何在同时包含小写和大写字母的单词中使用小写字母?所以它会影响维纳斯,而不是维纳斯。

  • 问题内容: 我想知道如何用JavaScript中的大写字母替换捕获组。这是到目前为止我没有尝试过的工作的简化版本: 您能解释一下这段代码有什么问题吗? 问题答案: 您可以将函数传递给。 说明 在此示例中,您将字符串传递给replace函数。因为您使用的是特殊的替换语法 ($ N捕获第N个捕获),所以 您只是赋予了相同的值。实际上,这是骗人的,因为您仅使替换字符串大写 (这是没有意义的,因为和字符没

  • 我有这个正则表达式: 搜索: 替换为: 这将把所有单词的第一个字母替换成大写字母。例如:

  • 问题内容: 如何仅使用CSS将以下每个句子的大写字母转换为小写和首字母大写? 来自: 这是一个例句。 收件人: 这是一个例句。 更新: 当我使用文本转换时:大写;结果还是一样。 问题答案: CSS中没有句子大写选项。其他答案表明是不正确的,因为该选项将 每个单词 都大写。 如果您只希望 每个元素* 的 首字母 大写,则这是一种 粗略的 实现方式,但是与实际的句子大写绝对不符: *

  • 尝试使用正则表达式识别文本数据的结构并遇到障碍。 对于下面的示例文本 Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是业界的标准虚拟文本。 我是一个标签-Lorem Ipsum只是打印的虚拟文本 下面的正则表达式选择I AM A HEADER:和I AM A TAB- 请建议进行编辑,以匹配“我是标题”和“我是标签”,并忽略结尾标记“:”和“-”。

  • 我正在尝试制作一个正则表达式来检查密码字段,我想至少需要一个大写字母,一个小写字母和一个数字。 我还想允许用户使用特殊字符,但我不希望特殊字符成为要求。 这可能吗?如果可能,我应该使用什么正则表达式?