记事本++
我正在寻找一种批量注释文本块的方法(以及撤消注释的代码)。忽略同一文件的其他部分;但同时尊重每个块中的一些差异。
示例块已被注释掉,
Code to keep Above
#1291.5.21 = { #some more text to preserve
# owner = XXX
# controller = XXX
# add_core = XXX
# remove_core = XXX
#} #some more text to preserve
More code to keep below
每个块中的 XXX 都会不同,但在不同的文件中可能相同(尽管只有三个字母/数字);对于稍微复杂的情况,理想情况下,具有 XXX 的块将被忽略(并保持注释)。
块限制的唯一真实指针是日期 = { 和结束 },它们是相同的(最多包括之后要保存的 # 文本)
我所寻找的最终结果。
Code to keep Above
1291.5.21 = { #some more text to preserve
owner = XXX
controller = XXX
add_core = XXX
remove_core = XXX
} #some more text to preserve
More code to keep below
只需单击一次即可完成 4 个或全部 8 个日期的计算,可获得加分。(因为它们构成了超级块)
1291.5.21
1291.5.23
1291.5.24
1291.5.26
1444.11.13
1444.11.15
1444.11.16
1444.11.18
答案1
以下是取消注释不具有等于 的值的行的解决方案XXX
:
- Ctrl+H
- 找什么:
^#(?=\d{4}\.\d\d?\.\d\d?|}|\h+(?:owner|controller|add_core|remove_core)\h*=\h*(?!XXX)\w{3}$)
- 用。。。来代替:
LEAVE EMPTY
- 查看 相符
- 查看 环绕
- 查看 正则表达式
- 取消选中
. matches newline
- Replace all
解释:
^# # beginning of line and # sign
(?= # positive lookahead
\d{4}\.\d\d?\.\d\d? # date
| # OR
} # closing curly brace
| # OR
\h+ # 1 or more horizontal spaces
(?: # non capture group
owner # literally
| # OR
controller # literally
| # OR
add_core # literally
| # OR
remove_core # literally
) # end group
\h*=\h* # equal sign wth optional spaces before and after
(?!XXX) # negative lookahead, make sure we haven't XXX after
\w{3} # 3 word characters
$ # end of line
) # end lookahead
截图(之前):
截图(之后):