gpt4 book ai didi

带有负后视的 Javascript 正则表达式(回顾)

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

我希望有人可以检查我的正则表达式,以确保它正在执行我希望它执行的操作。

所以这就是我所追求的:

  1. 在单词边界内搜索单词 - 因此它可以是单独的单词,也可以是另一个单词中的单词
  2. 获取前面的 30 个字符(如果前面的字符存在),但前提是它们包含我要搜索的词。
  3. 抓取接下来的 30 个字符(如果存在)

因此,如果我搜索“汽车”1,我有:

(\b\w*car\w*\b)

对于 2,我有:

((?!\b\w*car\w*\b).{30}|.{0,30})

对于 3,我有:

.{0,30}

一起:

((?!\b\w*car\w*\b).{30}|.{0,30})(\b\w*car\w*\b).{0,30}

我做对了吗,这会做我想要的吗?

最佳答案

需要对您的正则表达式进行细微更改。

最后一个.{0, 30}需要放到一个组里。完整的正则表达式就变成了这样:

/((?!\b\w*car\w*\b).{30}|.{0,30})(\b\w*car\w*\b)(.{0,30})/

如果您在 javascript 控制台中运行它,您可以看到输出:

var str = "I'm an psychodelic purple and green electric smartcar that goes insanely really fast and can lap the Earth on a single charge"
var match = str.match(/((?!\b\w*car\w*\b).{30}|.{0,30})(\b\w*car\w*\b)(.{0,30})/);

alert(
"Word containing car: " + match[2] +
"\nFirst 30: " + match[1] +
"\nLast 30: " + match[3]
);

您应该收到以下警告消息:

Word containing car: smartcar
First 30: lic purple and green electric
Last 30: that goes insanely really fas

关于带有负后视的 Javascript 正则表达式(回顾),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34236403/

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