匹配之前没有特定单词的任何点

2024-05-16 17:12:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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的每个点,然后是一个空格


Tags: 字符串内容title模式互联网建议前瞻aaaaa
2条回答

我仍然不完全清楚您到底想要哪种场景,所以这里有两个选项,每个选项都匹配什么

积极前瞻:

\.(?=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.

分组:

\1 \2 \5

演示:https://regex101.com/r/hPY8JX/2

哦,JS的更新

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

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

相关问题 更多 >