gpt4 book ai didi

javascript - 由于负前瞻的位置导致匹配差异?

转载 作者:可可西里 更新时间:2023-11-01 12:57:36 25 4
gpt4 key购买 nike

我对正则表达式有很多困惑,我正在努力解决它们。这里我有以下字符串:

{start}do or die{end}extended string

我的两个不同的正则表达式,我只改变了点的位置:

(.(?!{end}))* //returns: {start}do or di
//^ See here
((?!{end}).)* //returns: {start}do or die
//^ See here

为什么第一个正则表达式吃掉最后一个“e”?

还有这种负向前瞻如何使这个 * 量词不贪婪?我的意思是为什么它不能使用超出 {end} 的字符?

最佳答案

你说你的否定前瞻,不可能匹配正则表达式,在你的情况下是:{end}. 捕获除了新行之外的所有内容。

所以你的第一个正则表达式:

(.(?!{end}))*

它省略了 e,因为: e{end} 由于否定前瞻而无法匹配。在你的第二个正则表达式中,你在另一边有点的地方可以直到:{end}d 所以 e 包含在你的第二个正则表达式中。

关于javascript - 由于负前瞻的位置导致匹配差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31482156/

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