我有一个长文件,结构如下:
500
500
开头(第2行,第4行,基本上每个偶数行)我想做什么:
500
开头的行应该与上面的偶数行合并(因此第2行包含第1行,第4行包含第3行,等等)。 <Line 1>;<Line 2>
)。 我如何在python(2.7)中轻松完成?
Notepad ++ 中的正则表达式也可以使用。我听说我应该使用多线模式,但我不知道该怎么做。可能它甚至不是很难,但我很难处理它。
感谢。
这里输入(简化):
;500;616;;”YPO_INV”;”KP”;”51D0072”;”YNU”
;” 6,291.00”;;
;500;6900;;”YPNV”;”KE”;”53213072”;”YOU”
;” 6,991.00”;;
预期产出:
;500;616;;”YPO_INV”;”KP”;”51D0072”;”YNU”;;” 6,291.00”;;
;500;6900;;”YPNV”;”KE”;”53213072”;”YOU”;;” 6,991.00”;;
答案 0 :(得分:1)
试试这个正则表达式:
[\r\n]+(?!;500)
将每个匹配替换为;
<强> Click for Demo 强>
<强>解释强>
[\r\n]+
- 匹配1行以上的换行符或回车符(?!;500)
- 负向前瞻以确保当前位置未被:500
替换之前:
替换后:
答案 1 :(得分:0)
正则表达式:\n^(?!;500)
详细说明:
^
在行的开头断言位置(?!)
否定前瞻Python代码:
text = open(r'C:\....txt').read()
r = re.compile(r'\n^(?!;500)', re.M)
text = r.sub(';', text)
输出:
;500;616;;”YPO_INV”;”KP”;”51D0072”;”YNU”;;” 6,291.00”;;
;500;6900;;”YPNV”;”KE”;”53213072”;”YOU”;;” 6,991.00”;;
答案 2 :(得分:0)
使用Notepad++
进行此类简单更改。
输入以下值:
[\r\n]+(;(?!500))
\1
点击全部替换( Alt + A )