目标:试图只捕获发票#列值。我的目标是使用发票号右边的日期来捕获左边的发票号。
问题:我们正在处理的字符串的格式已经将详细信息的最后一行汇总到前面的行中。看DM20052921,我不能抓住(DM20052921),在底部和顶部也能得到一条不想要的行吗?
:(A\d+).+(?= 20\d{2}-)
样本文本:
2020-06-02纯生命保健品LP页1 A/P汇款通知直接存款2020-06-02
支票# 10215卖方# 0600 HAIN天文加拿大,ULC
=================================================================================== 发票#日期描述
220339 2020-04-24 P2152762 2,569.44 .00 2,569.44
221887 2020-04-29 P2153903 1,655.68 .00 1,655.68
221967 2020-04-29 P2153899 3,210.68 .00 3,210.68
222055 2020-04-29 P2153904 1,574.09 .00 1,574.09
CR01BBN0 2020-05-18多MCBS 86.65- .00 86.65-
CR01BBWG 2020-05-25多MCBS 98.02- .00 98.02
CR01BB4I 2020-06-01多MCBS 60.37- .00 60.37
DM20051917 2020-05-13库存核销1.44- .00 1.44- DM20052921 2020-05-21
库存注销23.96- .00 23.96- ========================================== 8,739.45 .00 8,739.45
印于2020-06-02,13时4分
发布于 2020-10-25 02:22:52
在我看来你好像想太多了.
/([A-Z\d]+)\s\d{4}/ // This works for your example
/([A-Z\d]+)\s\d{4}-\d{2}-\d{2}/ // This double checks it's followed by a date发布于 2020-10-25 02:14:32
试试这个正则表达式
([A-Z\d]+)(?=\s\d{4}-\d{2}-\d{2})发现了这些东西
2020-06-02纯生命保健品LP页1 A/P汇款通知直接存款2020-06-02
支票# 10215卖方# 0600 HAIN天文加拿大,ULC
发票#日期描述毛光盘净===================================================================================
220339 2020-04-24 P2152762 2,569.44 .00 2,569.44
221887 2020-04-29 P2153903 1,655.68 .00 1,655.68
221967 2020-04-29 P2153899 3,210.68 .00 3,210.68
222055 2020-04-29 P2153904 1,574.09 .00 1,574.09
CR01BBN0 2020-05-18多MCBS 86.65- .00 86.65-
CR01BBWG 2020-05-25多MCBS 98.02- .00 98.02
CR01BB4I 2020-06-01多MCBS 60.37- .00 60.37
DM20051917 2020-05-13库存核销1.44- .00 1.44- DM20052921 2020-05-21
库存注销23.96- .00 23.96- ========================================== 8,739.45 .00 8,739.45
印于2020-06-02,13时4分
https://stackoverflow.com/questions/64519675
复制相似问题