gpt4 book ai didi

javascript - 正则表达式匹配一个不在另一个单词之后的单词

转载 作者:搜寻专家 更新时间:2023-11-01 04:31:38 25 4
gpt4 key购买 nike

如何编写 JavaScript RegEx,使其匹配例如单词 cube,但前提是单词 small 不在之前的 20 个字符范围内这个词。

正则表达式应匹配:

  • 立方体
  • 红色立方体
  • 木立方体
  • 小......立方体

RegEx 不应匹配:

  • 小立方体
  • 小红立方体
  • 小木立方体
  • ..........小......立方体
  • 任何领域

目前我的正则表达式看起来和工作方式如下:

> var regex = /(?:(?!small).){20}cube/im;
undefined
> regex.test("small................cube") // as expected
true
> regex.test("..........small......cube") // as expected
false
> regex.test("01234567890123456789cube") // as expected
true
> regex.test("0123456789012345678cube") // should be `true`
false
> regex.test("cube") // should be `true`
false

cube前面必须有20个字符,每个字符都不是small的第一个字符。但问题来了:如果 cube 出现在字符串的前 20 个字符内,则 RegEx 当然不匹配,因为 cube 前面的字符不够.

如何修复正则表达式以防止这些漏报?

最佳答案

你可以使用这个正则表达式:

.*?small.{0,15}cube|(.*?cube)

并使用匹配组 #1 进行匹配。

Online Regex Demo

关于javascript - 正则表达式匹配一个不在另一个单词之后的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24761061/

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