我正在搜索大量的文字(歌词)。当出现某个短语“高于”时,我希望代码只返回接下来的10个字符。
实施例。 “等等,我高于天空中的一架飞机,等等等等”将“返回”飞机“
我似乎无法组合.match或.substr方法,而且我不确定如何在不必拥有大量[/ s / S]字符集的情况下表达我的初始正则表达式搜索。我正在查看.match方法,因为我想要一个包含给定短语后的单词的信息数组。
我暂时停留在/(higher than [\s\S][\s\S])/igm
。
任何帮助表示赞赏。 JS的新手,提前道歉。
答案 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' ]