Python中用正则表达式搜索本地英汉词典,找到具有某种pattern的单词

英汉词典可以在网上下载。其格式是这样的:

abandon      v.抛弃,放弃
abandonment      n.放弃
abbreviation      n.缩写
abeyance      n.缓办,中止
abide      v.遵守
ability      n.能力
able      adj.有能力的,能干的
abnormal      adj.反常的,变态的
aboard      adv.船(车)上
abolish      v.废除,取消
abolition      n.废除,取消
abortion      n.流产
abortive      adj.无效果的,失败的
about      prep.关于,大约

命名为“英汉词典.txt”,并保存在和源文件同一目录下。代码是:

import re

p=re.compile(r'[a-z]{1,3}one\b')

#还可以r'[a-z]*one\b',搜索所有以one结尾的单词。\b是单词结束标志

#搜索th开头,n结尾的单词
#p=re.compile(r'th[a-z]n\b')

f=open("英汉词典.txt")
result=[]
for line in f.readlines():
    m=re.match(p,line)
    if m!=None:
        result.append(m.group())
print(result)
f.close()

其中的pattern需要不断总结和完善。

'[a-z]{1,3}one\b'表示以"one"结尾,前面有1-3个字母的单词。

[a-z]*one\b 表示以“one”结尾,前面有0或者若干字母的单词。

r[a-z]b\b 表示以“r”开头以“b”结尾的所有单词。

猜你喜欢

转载自blog.csdn.net/acflair/article/details/82709026
今日推荐