如何检查正则表达式是否永远匹配?

时间:2016-12-04 17:38:23

标签: javascript regex

我需要一种方法来检查正则表达式是否可以匹配0个字符,因此无限匹配。例如,正则表达式.*可以匹配0个字符,这意味着它将永远循环,从而导致我的应用程序崩溃。

在我的应用中,用户输入正则表达式,当然可以永久循环。我该如何防止这种情况发生?

1 个答案:

答案 0 :(得分:1)

没有正则表达式无限匹配的东西;因此陷入无限循环。例如,当有0个字符时,正则表达式.*将立即停止,并且将对任何n个字符串的n次迭代运行。

正则表达式是有限状态机的一种形式。字符串,它的输入,也总是有限的。正则表达式中没有无限。

以下是CS背景中提出的相同问题:https://cs.stackexchange.com/questions/47835/can-a-regular-expression-be-infinite