gpt4 book ai didi

javascript - 正则表达式未按预期工作/(d).\1/

转载 作者:行者123 更新时间:2023-11-28 13:26:09 25 4
gpt4 key购买 nike

我是正则表达式的初学者,所以我正在 stackoverflow 上阅读正则表达式的信息页面。

eg: /(d).\1/ matches and captures 'dad' in "abcdadef" while /(?:.d){2}/ matches but doesn't capture 'cdad'.

我尝试过:-

var pattern=/(d).\1/


var val="abcdadef";

console.log(pattern.exec(val));

它显示 ["dad","d"] 数组,但我不知道为什么?正如信息中所说,它只捕获“爸爸”,为什么它捕获数组中的两个值?模式末尾的 '\1' 有什么用?

请向我提供更多如何使用它的信息。

谢谢:-)

最佳答案

当您使用 () 时,您是在告诉正则表达式匹配 () 之间的内容并将其存储为捕获组。每场比赛都有自己的捕获组。试试你的表达 here 。正则表达式匹配对象通常是一个集合,其中包含正则表达式的整个匹配项,后跟捕获该匹配项的组。

编辑:根据您下面的评论,这是另一个模式(m).\1,我们执行正则表达式的文本是 mum。在此示例中,正则表达式将尝试执行以下操作:

  1. 匹配文字m,因此我们使用(),它将匹配存储在捕获组中。该捕获组稍后将进入匹配集合。
  2. . 将匹配除换行符之外的任何字符,因此在我们的例子中,它将匹配文字 u.
  3. \1 将尝试使用第一个匹配组作为模式来匹配下一个字符,在我们的例子中,这将是文字 m

最终结果将是 mum 的正则表达式匹配,唯一的捕获组将为 m

关于javascript - 正则表达式未按预期工作/(d).\1/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28980963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com