最近在写java程序时遇到了文本处理问题。
明明自己的程序写的没有什么问题,但是却进入了死循环或者是栈溢出。
下面给出大家几个可能的解决方法
- 尽量少使用+或者*。虽然这两种符号用起来很方便,但是在匹配时是递归进行匹配的,所以开销会比较大。
- 使用
Pattern.compile()
来构建新的Pattern
类对象,这样做性能会比直接使用Matcher
类要好。 - 想办法简化自己的正则表达式。
- 如果文本的长度过长,建议可以先手动进行简单的文本分割。比如先按段落分开,或者划分为比较短的文本块。之后再使用正则表达式去匹配或者查找。