首页 > 解决方案 > 正则表达式仅在同一行中匹配

问题描述

我试图在 Python 中使用正则表达式解决的文本示例如下

看着傍晚的天空真是太棒了,天空的颜色

蓝色
天空的颜色是蓝色的

我试图在颜色之前找到最多 3 个单词,但是如果它们仅在同一行中,我想提取它们

突出显示的是我正在寻找的输出

看着傍晚的天空真是太棒了,天空的颜色
是蓝色的天空
颜色是蓝色的

我正在使用的代码是

((?:\S+\s+){0,4}\b(?=color)\b\s*)

示例如下

https://regex101.com/r/Q61Hi7/1

这可能是一个重复的问题,但是我找不到任何可以解决的答案

标签: pythonregex

解决方案


不要使用\s匹配任何空格,而是使用文字空间来匹配空格。\t如果您也想包含它,您可以添加。

((?:\S+ ){0,4}\b(?=color)\b\s*)

推荐阅读