如何用正则表达式将特定表达式中=后的大写字母转为小写?
解决正则替换中转大写字母为小写的问题
问题场景
原始文本:
Hic requiesc<i=E>t in pace Gundeberga
需求:仅将等号=后跟随的任意大写字母转为对应小写,其他字母大小写保持不变,最终效果:
Hic requiesc<i=e>t in pace Gundeberga
此前尝试的公式=REGEX.REPLACE(A1;"=[A-Z]";"=[a-z]";0;1)无效,原因是替换字符串中的[a-z]不是正则替换的有效转换写法。
正确解决方案
根据使用的表格工具,选择对应公式:
1. Google Sheets 写法
使用REGEXREPLACE结合LOWER()函数,通过捕获分组实现转换:
=REGEXREPLACE(A1; "=([A-Z])"; "="&LOWER("$1"))
- 匹配规则
=([A-Z]):捕获=后的单个大写字母为第1分组 - 替换规则
="&LOWER("$1"):将捕获到的大写字母通过LOWER()转为小写,再拼接=完成替换
2. Excel 365+ 写法
Excel的REGEXREPLACE支持\L转义序列直接将匹配内容转为小写:
=REGEXREPLACE(A1; "=([A-Z])"; "=\L$1")
\L$1表示将第1分组捕获到的大写字母转为小写
关键说明
正则替换的字符串部分不能直接用[a-z]实现大小写转换,必须通过捕获分组+转换函数(如LOWER())或正则转义序列(如Excel的\L)来实现目标字符的大小写转换。
内容的提问来源于stack exchange,提问作者Mael
相关产品推荐
相关产品推荐

