获取2个单词之间的字符串,其中包含此单词

时间:2015-08-14 14:54:26

标签: javascript regex

我有字符串,我想在其中找到2个字:STARTEND

STARTEND总是在一起(也许我会在他们之间有另一个角色,但如果我有START,我也会END

在第一个START和最后一个END之间,我可以有另外一对STARTEND

我尝试使用regEx源找到第一个START而不是他自己的END,它将在它们之间返回正确的子字符串。

这是我需要的regEx图表:

(我需要在第一个START到最后一个END之间获取字符串)

regExp diagram

3 个答案:

答案 0 :(得分:1)

我只使用简单的js indexOf和lastIndexOf而不是正则表达式:

var outerText = 'something test start something else some more test start end some more end some more'
var s = outerText.indexOf("start");
var e = outerText.lastIndexOf("end");

var innerText = outerText.substring(s+5, e);

答案 1 :(得分:0)

以下正则表达式的第一个匹配是您的字符串。

正则表达式:

[^start](.*)(end){1}

JavaScript的:

// returns "start end "
'start start end end'.match(/[^start](.*)(end){1}/)[1]

示例:https://regex101.com/r/qO2mS5/2

答案 2 :(得分:-1)

如果我理解你,这就是你想要的。

/START (.*) END/

示例:https://regex101.com/r/vE9bQ1/1