我有一个竖线分隔文件,每行 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++ 进行测试)
最佳答案
您可以利用 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
,您将能够通过选择 Plugins -> Python Script 来调用它 -> 脚本 -> replace_lbr_inblock。
正则表达式 ^[^|]*(?:\|[^|]*){36}$
匹配
^
- 行首[^|]*
-|
以外的零个或多个字符
(?:\|[^|]*){36}
-|
的 36 个序列,后跟零个或多个管道$
- 行尾。
之前:
之后:
关于正则表达式,如何在第 n 个 | 之后删除竖线分隔文件中的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38466757/