我想在一个关键字的六个字内找到一个匹配项。我正在努力
regex_search = re.compile("(?=keyword)(\s+\S+|$){0,6}<match_string>")
但这似乎不适用于我,如下面的例子所示
>>> search_string = "The dog happily ran after his ball"
>>> regex_search = re.compile('(?<=ran)(\s+\S+|$){0,2}dog')
>>> print(re.search(regex_search, search_string))
None
我希望它返回一个搜索对象
dog
出现在ran
的右边,因此这里没有匹配项。您可以使用替换组来匹配ran
和dog
或dog
和ran
之间的内容:参见regex demo
细节
ran
-ran
\s+
-1+空格字符(?:\S+\s+){0,6}
-0到6次出现:\S+
-1+非空白字符\s+
-1+空格字符dog
-adog
|
-或dog\s+(?:\S+\s+){0,6}ran
-与上面类似,只是dog
与ran
切换李>请注意,要将
dog
和ran
作为整词进行匹配,可以使用\b
:在声明regex模式时,最佳实践是依赖原始字符串文本,注意
r
前缀(因此,不需要在\b
中转义\
)相关问题 更多 >
编程相关推荐