首页 > 解决方案 > Python正则表达式提取字符串

问题描述

这是我的测试语句:

在设置或运行状态下,如果液体泄漏传感器检测到液体泄漏,则血液加温器应宣布紧急状态。

我要提取:

设置或操作

注意句子中可能有两个或多个状态,只要找到第一个作为边界。

我在 regex101 中测试我的代码: https ://regex101.com/r/p18Hef/1

(in (.*) (state|mode|phase|states))

但它找不到第一个状态......

标签: pythonregex

解决方案


正则表达式默认是贪婪的。您.*一直与“状态”的下一个实例匹配,因此您需要.*使用?.

最终的正则表达式是:(in (.*?) (state|mode|phase|states)).

更多信息可以在正则表达式操作中看到。


推荐阅读