Python 用于在点之间查找单词的正则表达式

Python 用于在点之间查找单词的正则表达式,python,regex,Python,Regex,我不熟悉正则表达式,我想使用正则表达式来查找点之间的单词 例如,文本类似于: abc.efg.hij.klm.opq. 我尝试使用以下正则表达式: \.(\w+)\. 它只显示2个匹配项: .efg. .klm. 为什么我会得到这个结果 这里是指向正则表达式的链接:它只显示两个匹配项,因为正则表达式引擎将不匹配它已经匹配的项。匹配.efg.后,它将与hij之前的点不匹配,因为该点已匹配(efg之后的点) 解决此问题的一种方法是不匹配点,而是使用lookaheads和lookbehinds:

我不熟悉正则表达式,我想使用正则表达式来查找点之间的单词

例如,文本类似于:

abc.efg.hij.klm.opq.
我尝试使用以下正则表达式:

\.(\w+)\.
它只显示2个匹配项:

.efg.
.klm.
为什么我会得到这个结果


这里是指向正则表达式的链接:

它只显示两个匹配项,因为正则表达式引擎将不匹配它已经匹配的项。匹配
.efg.
后,它将与
hij
之前的点不匹配,因为该点已匹配(efg之后的点)

解决此问题的一种方法是不匹配点,而是使用lookaheads和lookbehinds:

(?<=\.)\w+(?=\.)

(?它只显示两个匹配项,因为正则表达式引擎将不匹配它已匹配的内容。匹配
.efg.
后,它将不匹配
hij
之前的点,因为该点已匹配(efg
之后的点)

解决此问题的一种方法是不匹配点,而是使用lookaheads和lookbehinds:

(?<=\.)\w+(?=\.)

(?你需要更像“\.*\w+\”的东西吗?对我来说,这不是上面标记的东西的副本。不完全一样。原因是一样的,但解决方案不是。下面的清扫者的答案为我提供了我想要的确切解决方案。你需要更像“\.*\w+\”的东西吗?对我来说,这不是上面标记的副本。不完全是。原因是相同的,但解决方案不是。下面的清扫者的回答为我提供了我所寻找的确切解决方案。