You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python用re.sub替换单词末尾r为rh无效果,正则表达式哪里出错了?

正则替换问题分析与修复

错误原因

  • 你的正则表达式中使用的$符号作用是匹配整个字符串的末尾位置,而非单词的末尾位置。添加$后,只有整个文本的最后一个字符是r时才会触发匹配,你的示例文本末尾是句号,自然无法匹配到任何内容,所以没有替换效果。
  • $\b的组合逻辑无效:$已经代表字符串末尾,后续不存在任何字符,单词边界符\b在此处没有实际作用,反而进一步限制了匹配范围。

修复方案

删除正则中的$符号,仅保留r\b即可。\b是单词边界符,用于匹配单词字符和非单词字符(空格、标点、字符串首尾等)的分界位置,r\b可以精准匹配所有出现在单词末尾的小写r字符。
如果你需要和你给出的预期输出完全一致(即保留首字母大写的Her不替换),可以调整规则为r'(?<=[a-z])r\b',仅匹配前面为小写字母的末尾r。

修改后完整代码

import re

text="Her sweet-natured father is constantly henpecked by his domineering wives, who rule their domains with iron fists. His wives were named Alexis, Eris, Irer, Zenith and Saunder."
# 完全匹配所有以r结尾的单词使用这行
# text=re.sub(r'r\b','rh',text)
# 保留Her不变、和预期输出完全一致使用这行
text=re.sub(r'(?<=[a-z])r\b','rh',text)
print(text)

运行输出结果

Her sweet-natured fatherh is constantly henpecked by his domineering wives, who rule theirh domains with iron fists. His wives were named Alexis, Eris, Irerh, Zenith and Saunderh.

内容的提问来源于stack exchange,提问作者MsBonniePython

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:09:03