Java正则表达式使用的引擎实现是NFA自动机, 这种正则表达式引擎在进行字符匹配时会发生回溯(backtracking)。而一旦发生回溯, 那其消耗的时间就会变得很长, 有可能是几分钟,也有可能是几个小时, 时间取决于回溯的次数和复杂度. 正则表达式引擎 正则表达式引擎有两种实现方式: DFA自动机(Deterministic Final Automata 确定型有穷自动机)和NFA自动机(Non Deterministic Finite Automation 不确定性有穷自动机) DFA自动机 时间复杂度是线性…