【发布时间】:2019-07-09 15:20:16
【问题描述】:
我正在寻找一个正则表达式来解析除了三个连续的双引号之外的所有内容。问题是,当我使用正常的负前瞻时,连续的双引号会被吞噬,并且与我想要的不匹配。
假设我有以下文本:
Lorem Ipsum
"""
sdsdfgsdf
"""
bar
并且想linewise-regex 来匹配第一、第三和第五行,而不是"""。
我尝试了以下正则表达式:/(?!""").*/,但那是双引号被吞噬的时候。
尝试使用 ["] 一次匹配一个双引号也失败了:/(?!["]["]["]).*/
我正在使用 Python 来匹配正则表达式。
有什么想法可以让这个正则表达式工作吗?
【问题讨论】:
-
re.findall(r'^(?!"{3}$).+', s, re.M)?见regex101.com/r/piWLvQ/1 -
您想逐行处理您的输入,并且应该整理出只有 3 个连续双引号的行?进行字符串比较。
-
如果是一行有四个双引号怎么办?
-
看来你也可以简单地
[x.strip() for x in s.split('"""')](demo)。 -
谢谢@WiktorStribiżew,但我需要一个正则表达式:)