所以,我写了一个很小的Python脚本,它读取一个文本文件,这是一个丹麦语词典,然后使用reg.ex.过滤掉多余的单词和字符(如每行末尾的单词类+如果两个单词是同名词,过滤掉" 1。"" 2。"在每个单独的对于同一个单词的输入+它应该只包括第一个条目,如果有重复的话。)
字典看起来像这样:
1. A;sb. 2. A;fork. 1. a;sb. 2. a;præp. A3-format;sb. A4-format;sb. A5-format;sb. A-aktie;sb. ab;præp. abandonnere;vb. abandonnering;sb. abbed;sb. abbedi;sb. abbedisse;sb. ABC;sb. abc;sb. abdicere;vb.
......等等。的;字符将字典条目(单词本身)与每行上的单词类分开。
我的Python脚本是这样的:
import re p = re.compile(r'^(?:1\. )?([\wæøå-]+);', re.MULTILINE | re.IGNORECASE) f = open("ro.txt", "r", encoding="utf-8") ro = f.read() matches = p.findall(ro) f = open("result.txt", "w") for str in matches: f.write(str + ", ")
它工作正常,除了一个小但非常烦人的细节!无论我做什么,文本文件中的第一行都不会包含在搜索结果中。只有当我在字典文件的顶部手动插入一个额外的行时,它才能按预期工作,并且还包括字典的最顶层条目。我怀疑我的reg.ex中的插入字符(^)。在某种程度上不能正常工作,因为它包括每一行的开头'好吧,但不是整个字符串的开头,包含整个字典。
有什么建议吗?