gpt4 book ai didi

javascript - 麻烦理解? :, ?=、?! 和反向引用。 .

转载 作者:行者123 更新时间:2023-11-30 09:06:33 24 4
gpt4 key购买 nike

我正在学习正则表达式,用于我将要编写的脚本,但我已经到了停止点。我基本明白了什么?=?!做,他们是“前瞻”。举个例子:/Win (?=98)/如果它后面跟着“98”,则只匹配“Win”,而 /Win (?!XP)/仅当 不是 后跟 "XP"时才会匹配 "Win "。 . .对吧?

现在我真的不明白 ?:定界符。而且我还没有找到一个像样的例子,我真的,真的很困惑。 :/我知道它应该匹配整个包含的模式或其他东西?

令我感到困惑的另一件事是反向引用。这是我找到的示例:正则表达式 /<(\S+).*>(.*)<\/\1>/应该匹配“任何标签”。我只是对数字“1”指浏览器的含义感到困惑。 . .它是第一场比赛吗 - 在这种情况下我认为它会引用 <字符 - 还是其他?

我刚刚涉足正则表达式的世界,希望对这些概念有一些澄清,提前谢谢大家!

最佳答案

您对前瞻断言的想法是正确的。

\1 指的是括号中的第一个子匹配项,即您的示例中 (\S+) 匹配的任何内容。 \2 指的是第二个(在示例中,(.*))等等。

另一方面,

?: 意味着该组括号不应与 \1 之类的引用相关联。如果您需要为某些内容加上括号,但又不太关心以后是否获得匹配的文本,则可以使用它。因此,在正则表达式 /(?:abc)def(ghi)/ 中,\1 不会扩展为 abc(因为我们切换关闭使用 ?:),但到 ghi

关于javascript - 麻烦理解? :, ?=、?! 和反向引用。 .,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651696/

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