gpt4 book ai didi

javascript - Javascript 中的特定正则表达式正面外观(周围|前方|背后)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:52:04 29 4
gpt4 key购买 nike

我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。

也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是它没有被 \w 包围。 (这听起来像是消极的环顾四周,但我听说 JS 不会那样做!?)

(顺便说一句:上面的“给我”是我想替换的字面意思。如果这不是很明显的话。)

它必须是(?)环顾四周,因为 \W 必须是零宽度,因为意图是 .replace(...)而且我不能替换/复制周围的字符。

所以这行不通:

text.replace(/(?=\W)(gimme)(?=\W)/gi, function(l, match, r) {
return l + doMagic(match) + r;
})

必须忽略零宽度字符,因此该函数可以返回(并替换) doMagic(match)

我只有非常有限的环视经验,而且在 JS 中没有。谢谢。

附言。或者也许我需要回顾一下,而 JS 不支持这些……?我很困惑?

附言。一点上下文:http://jsfiddle.net/rudiedirkx/kMs2N/show/ (哦一个链接!)

最佳答案

  • 您可以使用单词边界快捷方式 \b 来断言您正在匹配的是整个单词。

  • 实现你想要做的事情的最简单方法可能是匹配:

/(\s+gimme)(?=\W)/gi

并替换为 [yourReplacement] - 即捕获“给我”之前的空格,然后在替换中包含一个空格。

  • 解决此问题的另一种方法是在 gimme 文字前后捕获更多字符,然后使用带反向引用的组:

(\W+?)gimme(\W+?) - 你的匹配 - 请注意,这次之前和之后的字符在捕获组 1 和 2 中

并且您想要使用 \1[yourReplacement]\2 作为替换字符串 - 不确定您如何在 JS 中使用反向引用,但想法是通过 告诉引擎\1 你的意思是第一个捕获括号匹配的任何内容。在某些语言中,可以使用 $1 访问它们。

关于javascript - Javascript 中的特定正则表达式正面外观(周围|前方|背后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954048/

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