猿问

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

我想抓一小部分可能不完全匹配的字符串。


例如:


str1 = 'invoice#'

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


预期产量


发票号91058780


这里的有效案例 str1


Invoice number

Invoice Num

Invoice no

Invoice#

Invoice:

inv number

我已经使用了正则表达式,但是中间还有更多的子字符串。我一直在使用的正则表达式是INV_regex = re.escape(str1) + r"\.?:?\s?\w+"


某些情况下将需要更复杂的正则表达式来捕获,因此不可能涵盖所有这些情况


HUX布斯
浏览 146回答 2
2回答

FFIVE

我会使用模糊匹配算法,例如from fuzzywuzzy import fuzza = '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笔记本电脑上看到的那样,它获得了我们所追求的价值。这会工作吗?
随时随地看视频慕课网APP

相关分类

Python
我要回答