如何将字符串中引号后的字母转换为小写?
解决引号后字母转小写的问题
嘿,刚好碰到过类似的需求!你要处理的就是把字符串里引号(不管是单引号还是双引号)后面紧跟的大写字母转换成小写,对吧?拿你给的例子来说,就是把They'Re改成They're,咱们直接上实用的解决方案。
核心思路
用正则表达式匹配引号+大写字母的组合,然后把捕获到的大写字母转换为小写,再替换回原位置就行。这个方法不管是单引号还是双引号都适用,灵活得很。
Python 实现
import re original_str = "Trees Are Never Sad Look At Them Every Once In Awhile They'Re Quite Beautiful." # 匹配单引号后的大写字母,替换为小写 modified_str = re.sub(r"'([A-Z])", lambda match: "'" + match.group(1).lower(), original_str) print(modified_str) # 输出:"Trees Are Never Sad Look At Them Every Once In Awhile They're Quite Beautiful."
解释一下:
r"'([A-Z])"是正则模式,匹配单引号',然后捕获后面的一个大写字母lambda函数把捕获到的大写字母(match.group(1))转成小写,再和单引号拼接后替换原匹配内容
如果是双引号的场景,只需要把正则里的'换成"就行,比如r'"([A-Z])'。
JavaScript 实现
如果你用JS处理,逻辑是一样的:
const originalStr = "Trees Are Never Sad Look At Them Every Once In Awhile They'Re Quite Beautiful."; const modifiedStr = originalStr.replace(/'([A-Z])/g, (_, upperChar) => "'" + upperChar.toLowerCase()); console.log(modifiedStr); // 输出:"Trees Are Never Sad Look At Them Every Once In Awhile They're Quite Beautiful."
这里的/g是全局匹配标志,确保字符串里所有符合条件的地方都被替换。
扩展说明
如果你的字符串里有智能引号(比如’而不是普通的'),只需要把正则里的引号字符换成对应的智能引号就行,比如r"’([A-Z])",逻辑完全一致。
内容的提问来源于stack exchange,提问作者Nodari
相关产品推荐
相关产品推荐

