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

如何用Python筛选无大写/数字/特殊字符且长度≤10的荷兰语词?

荷兰语词汇筛选方案(修正代码错误)

需求说明

我有一个包含全部荷兰语词汇的文本文件,需要筛选出仅含小写字母、长度不超过10个字符的词汇。手动处理40万条词汇效率极低,想用Python实现,但作为新手编写的代码存在词汇拼接、拆分错误,现寻求简洁可行的代码方案,要求移除含大写字母、数字、特殊字符的词汇,以及长度超过10字符的词汇。

原错误代码

import re

input_file = open("basiswoorden-gekeurd.txt", "r+")
output_file = open("word_crumble_wordlist.txt", "w")
filetext = input_file.read()
res_caps = re.sub(r"\s*[A-Z]\w*\s*", " ", filetext).strip()
res_dig = re.sub(r"\s*\d\w*\s*", "", res_caps).strip()
res = re.sub(r"[^a-zA-Z0-9\n\.]\w*\s*", "", res_dig).strip()

for line in res:
    if len(line) < 10:
        output_file.write(line)

原代码问题点

  • 一次性读取整个文本后用正则替换,会将不符合要求的词汇替换为空格/空内容,导致原本分行的词汇被错误拼接成一个长词
  • 循环遍历res时是按单个字符遍历,而非按行/词汇遍历,逻辑完全错误

修正后的代码

import re

# 用with语句自动管理文件,避免资源泄漏
with open("basiswoorden-gekeurd.txt", "r", encoding="utf-8") as input_file, \
     open("word_crumble_wordlist.txt", "w", encoding="utf-8") as output_file:
    # 正则匹配纯小写字母(若需保留荷兰语变音符号如ëïüö,改为r'^[a-zëïüö]+$')
    valid_word_pattern = re.compile(r'^[a-z]+$')
    for line in input_file:
        word = line.strip()  # 去除每行首尾的换行、空格等
        # 同时满足:纯小写字母组成、长度≤10
        if valid_word_pattern.match(word) and len(word) <= 10:
            output_file.write(f"{word}\n")

代码说明

  • 按行读取处理,彻底避免词汇拼接问题
  • 使用正则精准匹配符合要求的词汇,排除含大写、数字、特殊字符的内容
  • with语句自动处理文件打开/关闭,更安全规范
  • 若荷兰语词汇包含变音符号,只需调整正则表达式即可兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:18:24