我有一个文本文件,其中包含要从中删除一些记录的数据集。看起来像这样:
- =分隔符=
- 数据
- nobodyKeyword
- 数据
- =分隔符=
- 数据
- wantedKeyword
- 数据
- =分隔符=
- 数据
- nobodyKeyword
- 数据
- =分隔符=
- 数据
- wantedKeyword
- 数据
- =分隔符=
我可以使用某个关键字来标识我不需要(或想要)的记录。我想使用正则表达式,利用此关键字和分隔符字符串删除所有这些表达式。删除记录的“底部”部分效果很好,但是当我尝试使用以下方法删除“顶部”部分时:
= separator =。*?unwantedKeyword
匹配的开始在第一个可用的= separator =(第5行)上,而不是在end关键字(第11行)之前的最后一个(第9行)上,从而导致了所需记录被删除。
是否可以仅匹配该字符串的最后一个实例(模拟数据中的= separator =),所以仅匹配行1.至3.和9.至10,而不是1.至3.和5.至11。取代?
编辑:
还是我想让它向后读取文件?Notepad ++禁用了RegEx的该选项,因此不确定是否可行。
如果要删除第1至3行和第9至11行,则可以使用超前功能来防止匹配以=separator=
或包含不要的关键字开头的所有行。
^=separator=.*(?:\R(?!(?:=separator=|.*?\bunwantedKeyword\b)).*)*\R.*?\bunwantedKeyword\b.*\R*
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句