我想抓一小部分可能不完全匹配的字符串。例如: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笔记本电脑上看到的那样,它获得了我们所追求的价值。这会工作吗?
添加回答
举报
0/150
提交
取消