我有一个文本文件,其中字符串用引号" "
括起来,任何包含引号都由\
转义。我不想删除文本中的任何行制动器(\n
),只要它们前面没有未转义的引号("
),因为那是一行的结尾。
以下是一个例子:
"tre miljarder på att modernisera snabbtågen.\"
Dagens mest ironiska nyhet.,Väntar på att alla Summerburst-uppdateringar snart ska dö ut så min ångest kan släppa och jag kan återgå till ett normalt liv.,RT @mapeone: En till hashtag på Facebook och jag badar naken i grisblod.,Dagens biologiska lektion och psykologiska reflektion.
Så förlorade fåglarna sina penisar - DN.SE http://t.co/PFaseQMt8B,Hahaha \"@Aliceyouknow: Hah ironiskt att jag för exakt ett år sen ville gräva ner mig lika mycket som jag vill nu med.\" #livet,Det är bara kvinnor som på riktigt förstår paniken i om Zlatans hår skulle försvinna. #ikon,@nellie_lind ah han har ju rakat sidorna, snart ryker väl hela skiten,Alltså Zlatan ge fan i att mecka med håret.,Jag har ett jobb. Hur tungt är inte det. #tungt"
到目前为止,我提出的正则表达式模式如下所示:
[^"]\n+
但它也匹配\n
之前的字符,例如第1行"snabbtågen.\"
末尾的引号和第2行.
后的点("reflektion"
)。
我希望它匹配除了非转义\n
之外的其他任何内容的"
,但不包括其前面的内容。怎么办?
答案 0 :(得分:1)
您应该使用negative lookbehind断言
>>> print s
'first line'
'hello world
again'
>>> s2 = re.sub(r"(?<!')\s+", " ", s)
>>> print s2
'first line'
'hello world again'