Python的difflib库中get_close_matches方法有4个参数分别是:
- x:被匹配的字符串。
- words:去匹配的字符串列表。
- n,前topn个最佳匹配返回,默认为3。
- cutoff:匹配度大小,为[0, 1]浮点数,默认数值0.6。
import difflib
list1 = ['ape', 'apple', 'peach', 'puppy']
difflib.get_close_matches('appel', list1)
import keyword
difflib.get_close_matches('wheel', keyword.kwlist)
difflib.get_close_matches('pineapple', keyword.kwlist)
difflib.get_close_matches('accept', keyword.kwlist)
利用这个功能就能够实现SQL中的LIKE模糊查询。
还有一个方法就是通过re模块。
import re
def fuzzyMatch():
value = '西西'
list = ['大海西西的', '大家西西', '打架', '西都好快', '西西大化']
pattern = '.*' + value + '.*'
for s in list:
obj = re.findall(pattern, s)
if len(obj) > 0:
a = s
print(a)
break
fuzzyMatch()
以上为个人经验,希望能给大家一个参考.