【发布时间】:2016-03-18 03:01:03
【问题描述】:
我希望有人可以检查我的正则表达式,以确保它正在做我希望它做的事情。
这就是我所追求的:
- 在单词边界内搜索单词 - 因此它可以是单独的单词,也可以是另一个单词中的单词
- 获取前面的 30 个字符(如果存在前面的字符),但前提是它们不包含我要搜索的单词。
- 获取接下来的 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}
我做对了吗,这会做我所追求的吗?
【问题讨论】:
-
这个codereview.stackexchange.com 可能是这个问题的更好的地方
-
您能否为这个表达式添加一些有效和无效字符串的示例?
-
在控制台中运行它并检查输出是否是您想要/期望的:
"I'm an psychodelic purple and green electric smartcar that goes insanely really fast and can lap the Earth on a single charge".match(/((?!\b\w*car\w*\b).{30}|.{0,30})(\b\w*car\w*\b)(.{0,30})/) -
我做对了吗,这会做我想要的吗?我不知道,是吗?
-
差不多,需要稍作改动
标签: javascript regex