我有一个rythimn游戏图表脚本
TARGET(1
TIME(268466)
TARGET(1
TIME(273333)
TIME(278723)
TARGET(1
TIME(306666)
TIME(309492)
TARGET(0
TIME(330005)
但是,我需要每一行都保持“时间,目标,时间,目标”的模式。但就像你看到的,有重复的时间,这些时间可能与其他物体的时间有关,而不是这些目标,这就是为什么我需要把它们弄出来。所以它应该看起来像这样:
TARGET(1
TIME(268466)
TARGET(1
TIME(273333)
TARGET(1
TIME(306666)
TARGET(0
TIME(330005)
基本上,如果上面的一行也包含“TIME”一词,则删除带有“TIME”一词的一行(删除第二行也包含TIME一词)。如何在不手动删除它们的情况下实现这一点?我相信有成千上万的线工作。
2条答案
按热度按时间i2byvkas1#
如果您使用的是Notepad++,您可以使用:用途:
^
字符串开头TIME\(\d+\)
匹配时间和括号之间的1+位数(使用\d{6}
精确表示6位数)\K
忘记到目前为止匹配的内容(?:\RTIME\(\d+\))+
重复1+次匹配换行符和TIME模式Regex demo
在替换中使用空字符串。
如果
TARGET(
部分必须跟在后面,你可以使用一个正的lookahead来Assert它:Regex demo
vcudknz32#
您应该能够替换匹配的
空字符串。
Demo
演示使用PCRE正则表达式引擎,但我希望结果与使用Notepad++的does support fixed-length negative lookbehinds相同。
请注意,在演示中,我添加了
"TIME(309493)"
行,以说明如果两个或多个行匹配直线匹配
除了第一行(“TIME”)之外的所有行都将被匹配,因此可以转换为空字符串。
\r?\n
可以替换为\R
。