使用正则表达式删除匹配的字符串

时间:2019-11-23 00:52:55

标签: regex

我有一个用逗号分隔的名称/值对列表,如下所示:

null

我想删除天窗,收音机和导航对。我可以使用这样的正则表达式捕获这些对:

make=mazda;model=cx-5;year=2016;moonroof=yes;radio=yes;navigation=no;color=gray;

是否可以仅使用正则表达式来删除捕获的组,而无需编写代码?或者,是否有办法获取除捕获的组以外的其余对?

1 个答案:

答案 0 :(得分:0)

如果您的数据集很小,则可以使用在线网站(例如https://regex101.com/.)使用Linux,或者,我想Windows Subsystem for Linux应该可以将上述表达式与sed一起使用或bash regexp:

sed -ri 's/(radio|navigation|moonroof)=.*?(;|$)//g' <filename>

该sed命令将就地执行此操作,因此请首先备份您的数据。

如果没有bash / sed / perl可以从合适的命令行帮助您,很抱歉,您需要代码,或者与其相关的正则表达式引擎!

希望有帮助!