【BUG日记】【JAVA】replaceFirst、substring、Pattern和Matcher的联合使用,出现中断问题。

【日期】: 2020/11/16

【问题】: Dangling meta character ‘*’ near index 0.图1基本还原出问题的时候,图2是研究问题的时候主要原因。
【图1】
在这里插入图片描述
【图2】
在这里插入图片描述

【原因】: replaceFirst是匹配正则表达式的,而我需要替换的内容里,刚好存在正则表达式里的关键字*。

【如何发现】: 在对文件边读边写处理的时候,发现文件突然中断了,什么问题也没有,也没报bug错误,后来一步一步测试查问题,终于发现问题的原因。

【如何修复】: 只需要在修改的内容里添加\\*即可。
【图1】
在这里插入图片描述
【图2】在这里插入图片描述

【总结】: 收获颇多,知道了replaceFirst替换时候也可以遵循正则表达式。

(后补:另外,replaceAll也是可以遵循正则表达式,replace不遵循正则表达式。上面的方法也可以改成replace即可。)

猜你喜欢

转载自blog.csdn.net/qq_43263647/article/details/109723652