ssssssssssssssssssss
2021-03-20 10:34:08 来源:死循环死循环死循环
今天文本处理脚本在跑的时候发生了一个错误,打断点的时候发现是一段正则匹配的语句发生了一个死循环错误。
正则表达式是:
.*?(\d+年\d*-?\d*月?\d*日?.*)[、和](\d+年\d*-?\d*月?\d*日?.*)[、和](\d+年\d*-?\d*月?\d*日?.*)[、和](\d+年\d*-?\d*月?\d*日?).*,?(.*?的?(?:(?<!的)(?<!其他)(?<!年)应收账款(?:账面余额|余额)))(?:金额|净额|账面金额|账面净额)?分别[为是]?(-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?)[、和,](-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?)[、和,](-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?)[、和,](-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?).*
语句是:
截至2013年12月31日、2014年12月31日、2015年12月31日和2016年6月30日,公司应收账款分别为1万元、2万元、3万元和4万元,固定资产增加主要为机器设备及房屋建筑物的增加。
按道理来说,这里应该是匹配不上,出现not match的,但是为什么这里是死循环呢?今天文本处理脚本在跑的时候发生了一个错误,打断点的时候发现是一段正则匹配的语句发生了一个死循环错误。
正则表达式是:
.*?(\d+年\d*-?\d*月?\d*日?.*)[、和](\d+年\d*-?\d*月?\d*日?.*)[、和](\d+年\d*-?\d*月?\d*日?.*)[、和](\d+年\d*-?\d*月?\d*日?).*,?(.*?的?(?:(?<!的)(?<!其他)(?<!年)应收账款(?:账面余额|余额)))(?:金额|净额|账面金额|账面净额)?分别[为是]?(-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?)[、和,](-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?)[、和,](-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?)[、和,](-?\d*,?\d*,?\d*\.?\d+[万亿]?[元%]?).*
语句是:
截至2013年12月31日、2014年12月31日、2015年12月31日和2016年6月30日,公司应收账款分别为1万元、2万元、3万元和4万元,固定资产增加主要为机器设备及房屋建筑物的增加。
按道理来说,这里应该是匹配不上,出现not match的,但是为什么这里是死循环呢?
责任编辑:测试
