gpt4 book ai didi

javascript - (?=) 没用,我只是改变了它的位置

转载 作者:行者123 更新时间:2023-12-02 23:57:58 26 4
gpt4 key购买 nike

我的正则表达式没有正确执行。

当我改变它的位置时,我得到不同的结果。

“bbbWindows”不是我想要的。为什么不是“bbb2222”?

'Windowsbbb'.replace(/Windows(?=bbb)/, '2222') // 2222bbb
'bbbWindows'.replace(/(?=bbb)Windows/, '2222') // bbbWindows

最佳答案

前瞻 ( (?=...) ) 是零长度断言。他们断言原始字符串中该位置后面的子字符串必须与给定的模式匹配。换句话说,

/Windows(?=bbb)/

将匹配子字符串 Windows仅当子字符串紧随 s 后也匹配模式 bbb 。另一方面,

/(?=bbb)Windows/

将匹配子字符串 Windows仅当紧随初始匹配开始位置的子字符串也与模式 bbb 匹配时——这是不可能的,没有任何字符串可以匹配它。

让此模式发挥作用的最简单方法是使用常规“内联”组 ( (...) ) 并调整替换字符串以在适当的位置插入此匹配的子字符串 ( $<em>N</em> )。例如:

console.log('Windowsbbb'.replace(/Windows(bbb)/, '2222$1')) // 2222bbb
console.log('bbbWindows'.replace(/(bbb)Windows/, '$12222')) // bbb2222

关于javascript - (?=) 没用,我只是改变了它的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55292231/

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