为何正则表达式回溯会导致长尾词疑问?

2026-03-30 08:260阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2349个文字,预计阅读时间需要10分钟。

为何正则表达式回溯会导致长尾词疑问?

关于回归这个词,我也是第一次接触,对它也不算很了解。下面我就把我所理解的内容做一个心得记录下来,以备查阅。

我们所使用的正则表达式的匹配基础,大体可以分为以下几个方面:

1. 优先选择最左端(最靠左)的匹配。

简单来说,就是如果存在多个可能的匹配结果,正则表达式会优先选择最左边的一个。

为何正则表达式回溯会导致长尾词疑问?

关于“回溯”我也是第一次接触,对它也不算很了解。下面就把我所了解的做为一个心德记录下来,以备查看。

我们所使用的正则表达式的匹配基础大概分为:优先选择最左端(最靠开头)的匹配结果和标准的匹配量词(*、+、?和{m, n})是匹配优先的。

“优先选择最左端的匹配”顾名思义就是从字符串的起始位置开始匹配直到匹配结束这是基础;“标准匹配量词”又分为“非确定型有穷自动机(NFA)”也可以叫做“表达式主导”;另外一种是“确定型有穷自动机(DFA)”也可以叫做“文本主导”。我们目前在JavaScript中所使用的正则表达式为“表达式主导”。表达式主导和文本主导解释起来有些麻烦,先看来一个例子可能会清楚些。

复制代码 代码如下:
// 使用正则表达式匹配文本
var reg = /to(nite|knight|night)/;
var str = 'doing tonight';
reg.test(str);

在上面的这个例子中,第一个元素[t],它将会重复尝试,直到目标字符串中找到‘t'为止。
阅读全文

本文共计2349个文字,预计阅读时间需要10分钟。

为何正则表达式回溯会导致长尾词疑问?

关于回归这个词,我也是第一次接触,对它也不算很了解。下面我就把我所理解的内容做一个心得记录下来,以备查阅。

我们所使用的正则表达式的匹配基础,大体可以分为以下几个方面:

1. 优先选择最左端(最靠左)的匹配。

简单来说,就是如果存在多个可能的匹配结果,正则表达式会优先选择最左边的一个。

为何正则表达式回溯会导致长尾词疑问?

关于“回溯”我也是第一次接触,对它也不算很了解。下面就把我所了解的做为一个心德记录下来,以备查看。

我们所使用的正则表达式的匹配基础大概分为:优先选择最左端(最靠开头)的匹配结果和标准的匹配量词(*、+、?和{m, n})是匹配优先的。

“优先选择最左端的匹配”顾名思义就是从字符串的起始位置开始匹配直到匹配结束这是基础;“标准匹配量词”又分为“非确定型有穷自动机(NFA)”也可以叫做“表达式主导”;另外一种是“确定型有穷自动机(DFA)”也可以叫做“文本主导”。我们目前在JavaScript中所使用的正则表达式为“表达式主导”。表达式主导和文本主导解释起来有些麻烦,先看来一个例子可能会清楚些。

复制代码 代码如下:
// 使用正则表达式匹配文本
var reg = /to(nite|knight|night)/;
var str = 'doing tonight';
reg.test(str);

在上面的这个例子中,第一个元素[t],它将会重复尝试,直到目标字符串中找到‘t'为止。
阅读全文