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的,但是为什么这里是死循环呢?

责任编辑:测试

免责声明: 凡本站注明 “来自:XXX(非淘房网)”的楼讯稿件和图片作品, 系本站转载自其它媒体,转载目的在于信息传递,并不代表本站赞同其观点和对其真实性负责。 如有楼讯稿件和图片作品的内容、版权以及其它问题的,请联系本站。

免费咨询

房产知识有疑问?留下手机号码,专业的置业管家将为你服务!

免费咨询