如何去除双引号之间的嵌套双引号?附示例
如何去除双引号内部的嵌套双引号?
嘿,这个文本处理的场景我之前碰过好几次!咱们直接解决你的问题——核心就是保留字符串外层的双引号,把内部多余的嵌套双引号全部删掉对吧?
先再明确下你的需求:
- 输入:
"Test T"est"→ 输出:"Test Test" - 输入:
"Test1 "Test1"→ 输出:"Test1 Test1"
解决方案:正则匹配+字符串替换
我用Python来写示例(其他编程语言思路完全一致),核心逻辑很直观:先锁定外层双引号包裹的内容,清理掉中间的嵌套引号,再重新套回外层引号。
直接上可运行的代码:
import re def clean_nested_quotes(input_str): # 先判断输入是否被完整的外层双引号包裹 match = re.match(r'^"(.*)"$', input_str) if match: # 提取双引号中间的所有内容 inner_content = match.group(1) # 把内部所有嵌套的双引号替换为空 cleaned_inner = inner_content.replace('"', '') # 重新用双引号包裹处理后的内容 return f'"{cleaned_inner}"' # 如果输入没有外层双引号,直接返回原字符串(可根据需求调整这部分逻辑) return input_str # 测试你的示例 print(clean_nested_quotes('"Test T"est"')) # 输出:"Test Test" print(clean_nested_quotes('"Test1 "Test1"')) # 输出:"Test1 Test1"
逻辑拆解
- 正则
^"(.*)"$精准匹配:^"表示字符串开头是双引号,"$表示结尾是双引号,中间的(.*)捕获所有内部文本; - 用
replace把捕获到的内部文本里的所有双引号直接删掉; - 最后把清理好的内容重新用双引号包裹,返回结果。
如果你的场景里有更复杂的输入(比如多组外层引号对),可以再微调正则逻辑,但针对你给出的示例,这个方案完全够用啦!
内容的提问来源于stack exchange,提问作者Srinivas
相关产品推荐
相关产品推荐

