我有一个用逗号分隔的名称/值对列表,如下所示:
null
我想删除天窗,收音机和导航对。我可以使用这样的正则表达式捕获这些对:
make=mazda;model=cx-5;year=2016;moonroof=yes;radio=yes;navigation=no;color=gray;
是否可以仅使用正则表达式来删除捕获的组,而无需编写代码?或者,是否有办法获取除捕获的组以外的其余对?
答案 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可以从合适的命令行帮助您,很抱歉,您需要代码,或者与其相关的正则表达式引擎!
希望有帮助!