gpt4 book ai didi

javascript - JS regex positive look behind * 应该什么时候不贪心?

转载 作者:行者123 更新时间:2023-11-30 11:00:41 25 4
gpt4 key购买 nike

如果我查看文档,它说 * 应该总是贪婪的,但在这种情况下它不是:

// returns 'password*****' instead of 'password: *****'
'password: "something"'.replace(/(?<=password[ :]*)[^\n,]+/i, '*****')

最佳答案

FROM TC39 DOCS lookbehind proposal

模式通常从最左边的子模式开始匹配,如果左边的子模式成功,则继续匹配右边的子模式。当包含在回顾断言中时,匹配的顺序将被颠倒。模式将从最右边的子模式开始匹配,然后向左推进。例如,给定 /(?<=\$\d+\.)\d+/ ,该模式将首先找到一个数字并首先确保它前面有 。向后移动,然后是\d+ 从 . 开始,最后 $ 从断言中的\d+ 开始。回溯方向也会因此而反转。


由于您的 [^\n,]+将匹配除 new line and , 以外的所有字符所以它会捕获 :而且你的后视将看不到它,因为它已经被后视后的断言捕获,

你可以做的是使用 +这将确保您至少匹配 one space or :

'password: "something"'.replace(/(?<=password[ :]+)[^\n,]+/i, '*****') 

关于javascript - JS regex positive look behind * 应该什么时候不贪心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57874123/

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