只是为了看看我是否可以这样做,这应该根据以下假设找到发票和发票号发票始终存在于字符串中
发票后显示的数字是发票号。
我在发票和数字之间放了一些垃圾,以确保我能够正确地提取它们。它不会采用#或no或数字。在找到第一组数字后,它也会忽略任何数字。我把str3分开了,基本上循环是查找发票和数字。一旦发现发票后的数字(str3从发票开始)def isInv(strn):
leng = len('invoice')
print(leng)
pos = strn.find('invoice')
strn = strn[pos:leng]
if strn == 'invoice':
return(1)
return(0)
def dig(strn):
if strn.isdigit()==True:
return(1)
return(0)
str1 = 'invoice'
str2 = 'sold to invoice testing garbage 91058780 12345 wal-mart 12345673 corp'
fullLen = len(str2)
RelvLen = totalLen = str2.find(str1)
str3 = str2[totalLen:fullLen]
x = str3.split()
finlLst = []
for t in x:
itm = isInv(t)
if itm > 0:
finlLst.append(t)
itm = dig(t)
if itm > 0:
finlLst.append(t)
inv = finlLst[0] + " " + finlLst[1]
print(inv)