正则表达式搜索短语,返回' n'短语后的字符

时间:2015-01-28 23:10:06

标签: javascript regex

我正在搜索大量的文字(歌词)。当出现某个短语“高于”时,我希望代码只返回接下来的10个字符。

实施例。 “等等,我高于天空中的一架飞机,等等等等”将“返回”飞机“

我似乎无法组合.match或.substr方法,而且我不确定如何在不必拥有大量[/ s / S]字符集的情况下表达我的初始正则表达式搜索。我正在查看.match方法,因为我想要一个包含给定短语后的单词的信息数组。

我暂时停留在/(higher than [\s\S][\s\S])/igm

任何帮助表示赞赏。 JS的新手,提前道歉。

1 个答案:

答案 0 :(得分:1)

使用重复量词{}指定范围。

/higher than ([\s\S]{10})/igm

从组索引1中获取所需的字符串。

> var str = "blah blah I'm higher than a plane in the sky blah blah blah"
undefined
> var re = /higher than ([\s\S]{10})/gmi;
undefined
> var s = []
undefined
> var m;
undefined
> while ((m = re.exec(str)) != null) {
... s.push(m[1]);
... }
1
> s
[ 'a plane in' ]