数字名を検索して数字に置き換える

数字名を検索して数字に置き換える

数字の名前を含む長いコードセクションがあり、それを数字記号だけに置き換えたいと思っています。

私が持っているもの:

PartOne
PartTwo
PartThree
PartFour
PartFive
...
PartOneHundred

私が欲しいもの:

Part1
Part2
Part3
Part4
Part5
...
Part100

Notepad++ などでこれを実現する方法について何かアイデアはありますか? すべてを手作業で置き換えるのは非常に時間がかかります。これは簡単な作業のように思えますが、検索してもそのような結果は見つかりません。

答え1

Notepad++ で直接行うのは、おそらく無理でしょう。テキストを数字に変換するには多くのロジックが必要で、非常に高度な正規表現でもおそらくそのタスクには対応できません。

これらが本当に連続していて (あなたの例のように)、本当に連続している場合 (あなたの例のように)、お気に入りのスプレッドシートで再構築し、ColumnB から Notepad++ にコピー/貼り付けするだけだと思います。

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

スクリプト言語を使いたいなら、Perlは言語::EN::Words2Numsあなたの生活を楽にするモジュール

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

このスクリプトには、「Part」で始まる行は数値に変換され、そうでない行はそのまま通過する機能が含まれています。たとえば、あなたの例に数行追加すると、スクリプトから次の出力が得られました。

Part1
ignore
Part2
Part3
Part4
keep in place
Part5
Part100
okay

Python に同様のモジュール (または Python が Perl モジュールに相当するものと呼んでいるもの) があっても驚きません。Python に慣れている場合は、その方法をお勧めします。そうすれば、PythonScript モジュールを使用して Notepad++ に直接組み込むことができ、スクリプトでファイル入出力を行う必要がなくなります。

関連情報