首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除空行的正则表达式

删除空行的正则表达式
EN

Stack Overflow用户
提问于 2018-09-20 03:39:52
回答 5查看 1.2K关注 0票数 1

我正在尝试删除单个正则表达式中的空行和无效记录。但它似乎不起作用。在下面的示例中,包含Serverserial:0和ServerName:"“empty的记录是无效记录,

代码语言:javascript
复制
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}

通过使用下面的正则表达式,它只删除无效条目,但不会删除跟踪(空行)

代码语言:javascript
复制
.*(?<=ServerSerial":")0(?=").*|.*(?<=ServerName":")(?=").*

我也试过了,没什么好结果

代码语言:javascript
复制
.*(?<=ServerSerial":")0(?=").*[\r\n]*|.*(?<=ServerName":")(?=").*[\r\n]*

当前输出类似于空白行

代码语言:javascript
复制
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},

{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},


{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}

但是预期的输出是

代码语言:javascript
复制
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
EN

回答 5

Stack Overflow用户

发布于 2018-09-20 04:18:46

将此代码附加到第二个正则表达式中:

代码语言:javascript
复制
(?<=[\r\n])[\r\n]|

通过删除前面有另一个新行的换行符来删除空行。

票数 0
EN

Stack Overflow用户

发布于 2018-09-20 05:16:41

将文件转换为unix文件后,可以使用

代码语言:javascript
复制
grep -Ev 'ServerSerial":"0?"|ServerName":"0?"' inputfile
票数 0
EN

Stack Overflow用户

发布于 2018-09-20 18:04:27

您可以通过以下方式忽略这些空行。

使用ReplaceText处理器。

代码语言:javascript
复制
Search:  \n\n\s|\n\s

Replace:  \n

http://regexr.com/3fbst

参考:How to use regex to remove the spaces between two rows?

如果你在其中遇到任何问题,请让我知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52413136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档