在正则表达式中,什么是回溯/向后引用?

33 浏览
0 Comments

在正则表达式中,什么是回溯/向后引用?

使用正则表达式回溯是什么意思?

您能提供一个例子吗?

0
0 Comments

正则表达式中的回溯引用(back referencing)和回溯(backtracking)是两个不同的概念。回溯引用是指在代码中稍后使用捕获的结果,例如使用回溯引用匹配单引号或双引号括起来的字符串。回溯则是指在正则表达式匹配过程中发生匹配失败时的自然回溯。

回溯引用的例子是使用(['"]).*?\1匹配单引号或双引号括起来的字符串。它使用回溯引用\1引用了开放符号(单引号或双引号),以便在结尾处进行匹配。

而回溯是指当正则表达式匹配失败时,进行的回溯过程。例如,如果我想使用表达式.+b来匹配字符串aaaaaabcd,那么正则表达式首先会匹配.+部分,将aaaaaabc与之匹配,并将b与剩下的d进行比较。由于匹配失败,它会进行一次回溯,并将aaaaaab.+进行匹配,然后将最后的bc进行比较。这次匹配也失败了,所以它再次回溯并尝试将aaaaaa.+匹配,然后将bb匹配成功。

关于回溯引用和回溯的更详细的解释可以在community.appway.com/screen/kb/article/…找到。

0