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”结尾的所有单词。
下一篇: 爬虫:爬取微软必应翻译做成API