1 fan2006 OP 自己研究写了一个出来。python 3 re.findall(r'[一-]+(?<!数量)(\d+)','数量 123 单价 45 金额 5535') 结果: ['45', '5535'] |
![]() | 2 no1xsyzy 2018-12-28 12:41:57 +08:00 ![]() 因为匹配了 “数量 1 ” re.findall(r'(?<!数量)\s(\d+)','数量 123 单价 45 金额 5535') |
![]() | 4 nekoneko 2018-12-28 13:25:53 +08:00 数量和\d 中间加个空格试试 |
![]() | 7 imn1 2018-12-28 13:52:14 +08:00 空格是 V2 后台加的么? python 的 re.findall 总有难以预想的情况 正常理解,「(?<!数量)\d+」和「(?<!数量)(\d+)」是一样的,似乎 python 里面有优先级的区别 |