为了账号安全,请及时绑定邮箱和手机立即绑定

Python:抓取部分字符串的最佳方式看起来像另一个字符串

Python:抓取部分字符串的最佳方式看起来像另一个字符串

HUX布斯 2021-05-10 15:26:29
我想抓一小部分可能不完全匹配的字符串。例如:str1 = 'invoice#'str2 = 'sold to wal-mart corp invoice no 91058780'预期产量发票号91058780这里的有效案例 str1Invoice numberInvoice NumInvoice noInvoice#Invoice:inv number我已经使用了正则表达式,但是中间还有更多的子字符串。我一直在使用的正则表达式是INV_regex = re.escape(str1) + r"\.?:?\s?\w+"某些情况下将需要更复杂的正则表达式来捕获,因此不可能涵盖所有这些情况
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

我会使用模糊匹配算法,例如


from fuzzywuzzy import fuzz


a = 'invoice#'

b = 'sold to wal-mart corp invoice no 91058780'


for word in b.split():

    print(a, word, '-->',fuzz.partial_ratio(word,a))


get_word = [word for word in b.split() if fuzz.partial_ratio(word,a)>98]


print(get_word)

正如您在jupyter笔记本电脑上看到的那样,它获得了我们所追求的价值。这会工作吗?

//img1.sycdn.imooc.com//60a36c9f0001e40608530422.jpg

查看完整回答
反对 回复 2021-05-18
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信