下面是我的测试句子:
在设置或运行状态下,如果血暖机的漏液传感器检测到漏液,则血暖机宣布紧急状态。
I want extract:
设置或操作
请注意,句子中可能有两种或两种以上的状态,只要找到第一个状态作为边界。
我在regex101中测试我的代码:https://regex101.com/r/p18Hef/1
(in (.*) (state|mode|phase|states))
但是它找不到第一个状态…
Regex默认是贪婪的。您的.*
一直匹配到下一个"状态"实例,因此您需要用?
将.*
标记为lazy。
最终正则表达式为:(in (.*?) (state|mode|phase|states))
.
更多信息可在正则表达式操作中查看。