我希望有人可以查看我的正则表达式,以确保它正在做我想做的事。
所以这就是我追求的目标:
因此,如果我在寻找“汽车”为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 :(得分:1)
您的正则表达式需要稍作修改。
最后.{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