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

如何编写正则表达式统计文本语料中同一辅音出现超四次的单词?

统计含同一辅音超4次的单词数量:正则方案

你当前的正则([b-df-hj-np-tv-z])\1{3,}只能匹配连续重复4次以上的辅音,但需求是统计单词中某辅音**总出现次数超过4次(即≥5次)**的单词数量,以下是可行方案:

核心正则表达式

\b(?=\w*([b-df-hj-np-tv-z])(?:\w*\1){4})\w+\b

正则逻辑解释

  • \b:匹配单词边界,确保处理的是完整单词
  • (?=\w*([b-df-hj-np-tv-z])(?:\w*\1){4}):正向预查,验证单词满足条件:
    • 捕获组([b-df-hj-np-tv-z])匹配任意一个辅音
    • (?:\w*\1){4}确保该辅音在单词中至少再出现4次(加上第一次捕获的,总次数≥5)
  • \w+:匹配整个符合条件的单词

实际使用示例(以Python为例)

结合代码可直接统计文本中这类单词的数量:

import re

# 示例语料
corpus = "Sonnentrunkenheiten fliegen Schweppenstetten abcdeee ffghhjjj kkkkk"
# 正则模式(添加re.IGNORECASE可忽略大小写,按需调整)
pattern = r'\b(?=\w*([b-df-hj-np-tv-z])(?:\w*\1){4})\w+\b'

# 提取所有符合条件的单词
matches = re.findall(pattern, corpus, re.IGNORECASE)
# 统计数量(需去重则用len(set(matches)),保留重复直接用len(matches))
count = len(matches)

print(f"符合条件的单词数量:{count}")

注意事项

  • 若需支持德语特殊辅音(如ß),可将辅音范围调整为[b-df-hj-np-tv-zß]
  • 需区分大小写时,去掉re.IGNORECASE参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:27:12