Bloc de notas++
Estoy buscando una forma de comentar en masa (y el código para deshacerlo) un bloque de texto. Ignorar otras partes del mismo archivo; pero al mismo tiempo respetando algunas diferencias en cada bloque.
bloque de ejemplo ya comentado,
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
El XXX sería diferente en cada bloque, aunque posiblemente sea el mismo en diferentes archivos (aunque solo tres letras/números); para un poco de complejidad adicional, lo ideal sería ignorar los bloques con exactamente XXX (y permanecer comentados).
El único indicador real de las restricciones de bloqueo es la(s) fecha(s) = {y el cierre}, que sería el mismo (hasta incluir en gran medida el texto # para guardar después)
Resultado final de Lo que estoy buscando.
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
puntos de bonificación por poder hacerlo en 4 o en las 8 fechas con un solo clic. (mientras forman superbloques)
1291.5.21
1291.5.23
1291.5.24
1291.5.26
1444.11.13
1444.11.15
1444.11.16
1444.11.18
Respuesta1
Aquí hay una solución para descomentar líneas que no tienen un valor igual a XXX
:
- Ctrl+H
- Encontrar que:
^#(?=\d{4}\.\d\d?\.\d\d?|}|\h+(?:owner|controller|add_core|remove_core)\h*=\h*(?!XXX)\w{3}$)
- Reemplazar con:
LEAVE EMPTY
- CONTROLAR caso de partido
- CONTROLAR Envolver alrededor
- CONTROLAR Expresión regular
- DESMARCAR
. matches newline
- Replace all
Explicación:
^# # 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
Captura de pantalla (antes):
Captura de pantalla (después):