Python 匹配任何不匹配的点';I don’我以前没说过一句话

Python 匹配任何不匹配的点';I don’我以前没说过一句话,python,regex,Python,Regex,我有一个字符串,其模式类似于以下字符串: TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb. 我想用“.”来分割这个字符串,以获得如下内容:['TITLE','wordX.aaa.:AAAAAAA;AAAAA','bbbbbb:bbbbbb'] 问题是字符串“wordX”。aaa.:AAAAAAA;AAAAA'本身包含一个点,因此如我前面所说,通过拆分字符串,实际输出将是:['TITLE','wordX','aaa:'AAAAAAA;AAAAA','bb

我有一个字符串,其模式类似于以下字符串:

TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
我想用“.”来分割这个字符串,以获得如下内容:
['TITLE','wordX.aaa.:AAAAAAA;AAAAA','bbbbbb:bbbbbb']

问题是字符串“
wordX”。aaa.:AAAAAAA;AAAAA'
本身包含一个点,因此如我前面所说,通过拆分字符串,实际输出将是:
['TITLE','wordX','aaa:'AAAAAAA;AAAAA','bbbbbb:bbbbbb']

因此,我想要一个正则表达式,它允许我告诉分割,找到“每个不跟wordX的点”。在互联网上寻找这个,我发现一些人建议对这些情况使用负面前瞻,比如
^((?!wordX)。*$
。然而,这显然对我不起作用(也许我没有正确地使用它)


由于所有这些原因,我想知道如何构建一个正则表达式来匹配之前没有wordX的每个点,然后是一个空格。

我仍然不完全清楚您到底想要哪种场景,因此这里有两个选项,其中包括在每种情况下匹配的内容

积极前瞻:

\.(?=wordX)

TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
     ^
\.(?!wordX)

TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
           ^    ^               ^           ^
消极前瞻:

\.(?=wordX)

TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
     ^
\.(?!wordX)

TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
           ^    ^               ^           ^
正面回顾:

(?<=wordX)\.

TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
           ^
(?<!wordX)\.

TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
     ^          ^               ^           ^
(?
无论如何,你应该改写你的问题。干杯。

也许

^(.*?)\.((.*?)(?<!wordX)\.(.*?))\. (.*)\.
分组:

\1 \2 \5
演示:

哦,JS的更新

^(.*?)\.(wordX\..*)\. (.*)\.

你问题的第一部分和第二部分似乎不一致。你想只在后面跟一个短语时找到一个点,还是只想在后面不跟某个短语时找到一个点?如果是前者,简单的积极前瞻就足够了,例如\.(?=wordX)。如果你要在匹配的点上拆分字符串,你会不会得到
[“TITLE.wordX”,“aaa”,“AAAAAAA;AAAAAAA”,“bbbbbb:BBBB”]
?@CarySwoveland可能问题中不清楚,但我是按“点+空格”拆分的@oriberu我想做第二件事,在你的最后一个评论直接与你问题的最后一句相矛盾之前,找到没有单词X的点,这句话没有说明点后面有空格的必要。请编辑。谢谢你的回答。我已经改写了我的问题。我想要的替代方案是t他是你最后提到的一个,但是,当我尝试它时,它似乎也会在wordXOh之后标记点,很抱歉,我在另一个网站上尝试过它,它确实有效(我提到的第一个页面的问题是javascript)。谢谢!是的,JavaScript和lookbehinds已经没有历史了。但它在2018年的标准中,我们希望能得到广泛的实现。:)