匹配除三个连续双引号以外的所有内容

2024-05-23 21:06:44 发布

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

我正在寻找一个正则表达式来解析除了三个连续的双引号之外的所有内容。问题是,当我使用一个正常的负向前看时,连续的双引号会被吞没,并且它与我想要的并不匹配。你知道吗

假设我有以下文字:

Lorem Ipsum
"""
sdsdfgsdf
"""
bar

并希望行regex匹配第一、第三和第五行,而不是"""。你知道吗

我尝试了下面的正则表达式:/(?!""").*/,但这时双引号被占用了。 尝试使用["]一次匹配一个双引号也失败:/(?!["]["]["]).*/

我使用Python来匹配regex。你知道吗

有什么办法让这个正则表达式工作吗?你知道吗


Tags: 内容barregex文字ipsumlorem办法双引号
1条回答
网友
1楼 · 发布于 2024-05-23 21:06:44

如果右边的不是""",则未编排的模式(?!""").*将匹配任何字符0+次。由于它没有被锚定,它将在"""中的第一个"之后匹配,因为在该位置断言将成功。你知道吗

如果字符串中不能出现这3个双引号,则必须使用锚定^来断言字符串的开头,并将.*添加到负前瞻中:

^(?!.*""").*$

或者如果字符串中只有3个字符,则只使用这3个连续引号。你知道吗

^(?!"""$).*$

Regex demo

相关问题 更多 >