
Tengo una larga sección de código que tiene nombres de números, que me gustaría reemplazar solo con símbolos numéricos.
Lo que tengo:
PartOne
PartTwo
PartThree
PartFour
PartFive
...
PartOneHundred
Lo que quiero:
Part1
Part2
Part3
Part4
Part5
...
Part100
¿Alguna idea sobre cómo lograr esto en Notepad++ o similar? Llevaría mucho tiempo reemplazarlos todos a mano. Parece que debería ser una tarea fácil, pero no puedo encontrar ningún resultado de este tipo en mis búsquedas.
Respuesta1
Directamente en Notepad++, lo dudo. Convertir texto a un número tiene mucha lógica, e incluso las expresiones regulares más sofisticadas probablemente no estén a la altura de la tarea.
Si realmente son secuenciales (como su ejemplo) y realmente son contiguos (como su ejemplo), probablemente simplemente los reconstruiría en mi hoja de cálculo favorita y luego los copiaría y pegaría desde la Columna B en el Bloc de notas++:
# | ColumnA | ColumnB
1 | =row() | ="Part"&A1
2 | =row() | ="Part"&A2
...
Si está dispuesto a utilizar un lenguaje de secuencias de comandos, Perl tieneLingua::ES::Palabras2Numsmódulo para ayudarle a hacer su vida más fácil
cat source.txt | perl -MLingua::EN::Words2Nums -e "while (<>) { if(/^Part/) { s/^Part//; print 'Part' . words2nums($_) . qq{\n}; } else { print $_; }; } " > destination.txt
Este script incluye la característica de que las líneas que comienzan con "Parte" se convertirán a numéricas, mientras que las líneas que no lo hagan simplemente pasarán directamente. Por ejemplo, al agregar un par de líneas a su ejemplo, obtuve el siguiente resultado de mi script:
Part1
ignore
Part2
Part3
Part4
keep in place
Part5
Part100
okay
No me sorprendería si Python tuviera un módulo similar (o como quiera que Python llame a su equivalente de los módulos de Perl). Si se siente más cómodo con Python, seguiría ese camino, porque entonces podría compilar directamente en Notepad++ usando el módulo PythonScript y no tener que hacer File-IO en el script.