我有一个管道分隔文件,每行有35个管道。在第35个字段后面有一个预期的换行符。例如:
FirstField|ME|HERE|PHONE|Description|.....|LastField
FirstField|YOu|THERE|PHONE|Description|.....|LastField
但是,管道之间的某些数据(例如在描述字段中)包含换行符。例如:
FirstField|Them|Where|PHONE|This contains a
LineFeed
Or two
or more|.....|LastField
问题是,如何删除35个字段中任何一个字段中的换行符,但不是在行尾?
(注意:我正在使用Notepad ++进行测试)
答案 0 :(得分:5)
您可以使用Notepad ++ PythonScript插件。
See instructions on how to install a working version here并创建以下脚本文件:
def repl(match):
return match.group(0).replace("\r\n", "").replace("\n", "").replace("\r", "")
editor.rereplace(r'^[^|]*(?:\|[^|]*){36}$', repl)
如果您将脚本文件命名为replace_lbr_inblock.py
,则可以通过选择插件 - >来调用它。 Python脚本 - > 脚本 - > replace_lbr_inblock
正则表达式^[^|]*(?:\|[^|]*){36}$
匹配
^
- 行的开头[^|]*
- 除|
(?:\|[^|]*){36}
- 一个|
的36个序列,后跟零个或多个管道$
- 行尾。在:
后: