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

如何移除包裹特定单词的单引号且保留所有格形式的单引号?

解决方案

你可以通过正则表达式的断言功能精准区分两种单引号:作为包裹引号的单引号,和作为所有格的单引号,只移除前者。

具体实现代码

import re

# 原列表
my_list = [" I wish I was Alex's best 'friend' "]
# 处理列表中的每个字符串元素
processed_list = [re.sub(r"(?<!\w)'|'(?!\w)", "", item) for item in my_list]

print(processed_list)
# 输出:[" I wish I was Alex's best friend "]

正则逻辑说明

这个正则表达式(?<!\w)'|'(?!\w)的核心逻辑是:

  • (?<!\w)':匹配**前面不是单词字符(字母、数字、下划线)**的单引号——比如'friend'开头的单引号,前面是空格,不属于单词字符,会被匹配;而Alex's里的单引号前面是字母x,属于单词字符,不会被匹配。
  • |:逻辑“或”
  • '(?!\w):匹配后面不是单词字符的单引号——比如'friend'结尾的单引号,后面是空格,不属于单词字符,会被匹配;而Alex's里的单引号后面是字母s,属于单词字符,不会被匹配。

这样就能精准移除包裹单词的单引号,同时保留所有格的单引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:53:05