另一个正则表达式问题:
我希望捕获两个不同标记字符串之间存在的文本。问题是,标记字符串有几个选项。例如:
我非常渴望一个三明治,明天我会去商店 - 捕捉"我非常饥饿"和"和"
我很累所以我会去睡觉。 - 拍摄之间"我非常疲倦"和"。"。
我用Javascript编码,我想:
/string one(.*?)string two|\.|string three|string four/gi
但这似乎不起作用。它只是在string one
和string two
之间抓取,忽略string three
和string four
。
我对正则表达式做错了什么?
答案 0 :(得分:3)
可能您需要对字符串进行分组,因为|
具有低优先级
/string one(.*?)(?:string two|\.|string three|string four)/gi
编辑:添加括号更改优先级,因为括号中的表达式在表达式的其余部分之前计算。另外,这里我们使用非捕获组,因为我们使用(?:
语法。