用regex检查案例?

2024-10-04 05:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以用什么正则表达式来检查一个单词中是否有过多的大写字母?e、 g

AAAApples

程序应该匹配AAAApples,因为开头的大写字母太多,使用re.sub,将它们替换为空字符串以保留Apples

所以使用regex,这个:r'^[A-Z]*[a-z]'查找大写字母,并检查下一个是否是小写字母。然后用一个空字符串替换它,去掉大写字母。当然,这也会删除“Ap”,留下“ples”。你知道吗

我需要对正则表达式做些什么来修复这个问题?你知道吗


Tags: 字符串程序re大写字母单词regexap小写字母
1条回答
网友
1楼 · 发布于 2024-10-04 05:31:07

使用捕获组获取额外大写字母后的字母。你知道吗

re.sub(r'^[A-Z]+([A-Z][a-z])', r'\1', string)

它匹配一系列大写字母,后跟一个大写字母和一个小写字母。括号将最后两个字母的匹配项放入捕获组。在替换中,\1被替换为第一个捕获组的内容。你知道吗

或者您可以使用前瞻:

re.sub(r'^[A-Z]+(?=[A-Z][a-z])', '', string)

lookahead指定仅当模式后跟子模式的匹配时才匹配,但该子模式不包括在匹配中。所以它匹配一个大写字母序列,后面必须跟一个大写字母,然后是小写字母。但是匹配中只包含大写字母的初始序列,然后被空字符串替换。你知道吗

转到regular-expressions.info了解有关regexp的所有信息。你知道吗

相关问题 更多 >