【发布时间】:2020-06-26 07:20:51
【问题描述】:
我有一个字符串,其模式类似于以下:
TITLE.wordX. aaa.: AAAAAAA;AAAAA. BBBB: bbbb.
我想用“.”分割这个字符串以获得类似:['TITLE','wordX. aaa.: AAAAAAA;AAAAA', 'BBBB: bbbb']
问题是字符串 'wordX. aaa.: AAAAAAA;AAAAA' 本身包含一个点,所以通过我之前所说的拆分字符串,真正的输出将是:['TITLE','wordX','aaa.: AAAAAAA;AAAAA', 'BBBB: bbbb']
因此,我想要一个正则表达式,它可以让我告诉拆分找到“每个不跟随 wordX 的点”。在互联网上寻找这个,我发现有些人建议对这些情况使用负前瞻,比如^((?!wordX).)*$。尽管如此,这显然对我不起作用(也许我没有以正确的方式使用它)。
由于这一切,我想知道如何构建一个正则表达式来匹配前面没有 wordX 并且后面跟着空格的每个点。
【问题讨论】:
-
您问题的第一部分和第二部分似乎不对应。你想只在一个点后面跟着一个短语,还是只在它后面没有某个短语时才找到它?如果是前者,一个简单的正向前瞻就足够了,例如\.(?=wordX).
-
如果你在匹配的点上分割字符串,你会不会得到
["TITLE.wordX", " aaa", ": AAAAAAA;AAAAA", " BBBB: bbbb"]? -
@CarySwoveland 问题可能不清楚,但我用“点+空格”分割
-
@oriberu 我想做第二件事,找到前面没有wordX的点
-
您的最后一条评论与您问题的最后一句直接矛盾,并且该句子没有说明点后跟空格的必要性。请编辑。