gpt4 book ai didi

javascript - 这个正则表达式有什么问题 - 与不情愿的量词有关吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:54 26 4
gpt4 key购买 nike

有人知道为什么这在 javascript 中不起作用吗? (尝试使用 Chrome 和 Firefox):

console.log('"my name is"'.match(/"?(.*?)"?/));

输出这个:

[""", "", index: 0, input: ""my name is""] 

我期望这样:

[""my name is"", "my name is", index: 0, input: ""my name is""]

我对解决问题的替代方法不感兴趣,而且它也不是我想要实现的目标的完整解决方案(我现在采用了稍微不同的方式)- 我只是想知道为什么匹配失败。

我希望不情愿的量词匹配所有内容,但不包括最终引述。我不明白为什么表达式无法匹配任何内容?

最佳答案

考虑

> "foo".match(/.*?/)
[""]

? 告诉正则表达式尽可能少地匹配,空字符串是最好的。同样,

> "foo".match(/x/)
null
> "foo".match(/x?/)
[""]

可选模式永远不会失败,并且匹配其内容或空字符串。

在您的示例中,它首先匹配引号,然后匹配空字符串与 (.*?) 和(另一个)空字符串与 "?。因为两者测试成功,它不再进一步查看,结果只是一个引用。

关于javascript - 这个正则表达式有什么问题 - 与不情愿的量词有关吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972121/

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