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

正则表达式与PHP搜索选项:如何提取仅出现一次的三字母字符串?

提取文本中仅出现一次的三字母字符串的简便方法

当然有简便方法啦!用Python的话可以借助标准库快速实现,分两种常见场景给你说明:

场景1:提取作为独立单词的三字母字符串

如果你的需求是找出文本中单独成词、长度恰好为3且仅出现一次的字符串(比如你示例里的abc),可以这样做:

from collections import Counter

# 输入你的目标文本
input_text = "aa jg hgh a hdgh a gd abc jd cc jdv dvn ab vd bacc"

# 1. 把文本按空格拆分成单个单词
words = input_text.split()

# 2. 筛选出长度正好是3的单词
three_letter_words = [word for word in words if len(word) == 3]

# 3. 统计每个三字母单词的出现次数
word_counts = Counter(three_letter_words)

# 4. 提取仅出现一次的三字母单词,得到目标数组
result = [word for word, count in word_counts.items() if count == 1]

print(result)
# 输出结果: ['hgh', 'abc', 'jdv', 'dvn']

代码说明:

  • split():快速把文本按空格分割成独立单词列表,避免跨单词的干扰
  • 列表推导式:简洁地筛选出符合长度要求的单词
  • Counter:Python标准库自带的计数工具,比手动写循环计数高效且易读
  • 最后一次列表推导式:精准筛选出出现次数为1的目标字符串

场景2:提取所有连续的三字母子串(含非单词场景)

如果你的需求是找出文本中**所有连续的三个字符(不管是否是独立单词)**且仅出现一次的字符串,可以调整代码如下:

from collections import Counter

input_text = "aa jg hgh a hdgh a gd abc jd cc jdv dvn ab vd bacc"

# 1. 先移除文本中的空格,避免空格干扰连续子串提取
clean_text = input_text.replace(" ", "")

# 2. 生成所有连续的三字母子串
three_letter_substrings = [clean_text[i:i+3] for i in range(len(clean_text)-2)]

# 3. 统计每个子串的出现次数
substring_counts = Counter(three_letter_substrings)

# 4. 筛选仅出现一次的子串
result = [sub for sub, count in substring_counts.items() if count == 1]

print(result)

你可以根据自己的实际需求选择对应的代码~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:35:59