Encontre e substitua nomes de números por dígitos

1

Eu tenho uma longa seção de código que tem nomes de números, que eu gostaria de substituir com apenas símbolos numéricos.

O que eu tenho:

PartOne
PartTwo
PartThree
PartFour
PartFive
...
PartOneHundred

O que eu quero:

Part1
Part2
Part3
Part4
Part5
...
Part100

Alguma idéia de como realizar isso no Notepad ++ ou similar? Seria muito demorado substituí-los à mão. Isso parece ser uma tarefa fácil, mas não consigo encontrar nenhum resultado assim nas minhas pesquisas.

    
por tomysshadow 26.01.2016 / 05:00

1 resposta

0

Diretamente no Notepad ++, duvido. Converter texto em um numeral tem muita lógica, e mesmo o regex super-fantasia provavelmente não está preparado para a tarefa.

Se eles são realmente sequenciais (como o seu exemplo) e realmente são contíguos (como o seu exemplo), eu provavelmente apenas reconstruí-lo na minha planilha favorita, depois copiar / colar da ColumnB no Notepad ++:

# | ColumnA  | ColumnB
1 | =row()   | ="Part"&A1
2 | =row()   | ="Part"&A2
...

Se você estiver disposto a usar uma linguagem de script, o Perl Lingua :: PT :: Words2Nums módulo para ajudar a tornar sua vida mais fácil

cat source.txt | perl -MLingua::EN::Words2Nums -e "while (<>) { if(/^Part/) { s/^Part//; print 'Part' . words2nums($_) . qq{\n}; } else { print $_; }; } " > destination.txt

Esse script inclui o recurso de que as linhas que começam com "Part" serão convertidas em numéricas, enquanto as linhas que não passarem apenas diretamente. Por exemplo, adicionando algumas linhas ao seu exemplo, recebi a seguinte saída do meu script:

Part1
ignore
Part2
Part3
Part4
keep in place
Part5
Part100
okay

Não me surpreenderia se o Python tivesse um módulo similar (ou o que o Python chama de equivalente a módulos Perl). Se você se sentir mais confortável com o Python, eu seguiria esse caminho, porque você poderia criar diretamente no Notepad ++ usando o módulo PythonScript e não ter que fazer o File-IO no script.

    
por 11.02.2016 / 20:56