匹配两个不同字符串之间的字符串

时间:2015-03-06 22:01:57

标签: javascript regex

另一个正则表达式问题:

我希望捕获两个不同标记字符串之间存在的文本。问题是,标记字符串有几个选项。例如:

我非常渴望一个三明治,明天我会去商店 - 捕捉"我非常饥饿"和"和"

我很累所以我会去睡觉。 - 拍摄之间"我非常疲倦"和"。"。

我用Javascript编码,我想:

/string one(.*?)string two|\.|string three|string four/gi

但这似乎不起作用。它只是在string onestring two之间抓取,忽略string threestring four

我对正则表达式做错了什么?

1 个答案:

答案 0 :(得分:3)

可能您需要对字符串进行分组,因为|具有低优先级

/string one(.*?)(?:string two|\.|string three|string four)/gi

编辑:添加括号更改优先级,因为括号中的表达式在表达式的其余部分之前计算。另外,这里我们使用非捕获组,因为我们使用(?:语法。