欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-04 12:06:54
...

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

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”结尾的所有单词。