[英]Merging lines in Notepad++ or by using Python
我有一個長文件,其結構如下:
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”;;
試試這個正則表達式:
[\r\n]+(?!;500)
用替換每個匹配;
說明:
[\\r\\n]+
-匹配1+次以上的換行符或回車符 (?!;500)
-提前否定以確保當前位置不跟在:500
更換之前:
更換后:
正則表達式 : \\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”;;
使用Notepad++
進行這種簡單的更改。
輸入以下值:
[\\r\\n]+(;(?!500))
\\1
單擊全部替換 ( Alt + A )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.