4

一致するたびに正規表現検索の「置換」フィールドを体系的に変更するのに最も役立ちます。

たとえば、テキスト内の通常のポイントに「id = $number」というフレーズを挿入する必要がある xml ファイルがあり、基本的に、正規表現が一致するたびに (id = 1、id = 2 など) 最後まで $number++ を挿入します。ファイルの。

bash/perl/python スクリプトなどを書けばよいことはわかっていますが、少なくとも適度にユーザーフレンドリーにして、インテリジェントな (ただし技術的傾向が少ない) ワーカーに使用方法を教えて、独自の変更を加えます。正規表現は彼らにとって問題ではありません。

これまでに最も近いのは、Notepad++ の列エディターと「increase [number] by」関数ですが、これを使用すると、別の正規表現を記述してすべてを整列させ、インクリメントを追加し、別の正規表現を記述して元に戻す必要があります。残念ながら、この関数をあまりにも多くの異なる種類のファイルで使用し、マクロを実行可能にするために「置換」する必要があります。

理想的には、このプログラムは Windows と Linux の両方で利用可能で (WINE は許容されますが、ネイティブがより望ましい)、「VI/VIM 入力」オプション (テキスト エディターの場合) を備えている必要がありますが、これらは重要ではありません。

もちろん、OSS ソリューションがあればいいのですが、それが私が探しているソリューションを提供するのであれば、喜んで 20 ドルから 50 ドルを開発者に寄付します。


長々と失礼しました。ご協力ありがとうございました。

4

8 に答える 8

8

emacs(バージョン22以降)はあなたが探していることをすることができます。それについての本当に興味深い読み物については、SteveYeggeのブログを参照してください。私はこれがうまくいくと思います:

Mxreplace-正規表現
  正規表現を置き換えます:ここにパターン正規表現を挿入します
  正規表現を次のように置き換えます:id = \#

\#は、これまでに発生した置換の総数(0から開始)で置換される特殊なメタ文字です。リストを0ではなく1から開始する場合は、次の置換文字列を使用します。

id = \、(1+ \#)
于 2009-04-15T01:50:46.610 に答える
2

JEdi​​tはおそらくあなたを助けることができます: http ://www.jedit.org/

あらゆる種類の正規表現を実行でき、それを置き換えることでBeanの結果に基づくこともできます。

于 2009-04-15T01:51:47.887 に答える
1

UltraEdit32は素晴らしく、必要な機能を備えていると思います。確認できるように、30日間の無料ダウンロードがあります。:)

于 2009-04-15T01:52:22.580 に答える
1

Windows / Linuxで利用できるアプリが必要なことは知っていますが、Macには別の解決策があります。TextWranglerで、無料です。

于 2009-04-15T02:17:47.433 に答える
0

UltraEdit32を見てください。これはとてもいいです。無料ではありませんが、Windows、Linux、Macプラットフォームで利用できます。正規表現ベースの検索と置換があります。

于 2009-04-15T01:52:11.427 に答える
0

このスクリプトを使用すると、 Vimで必要なことを実行できるはずです。

于 2009-04-15T02:47:37.613 に答える
0

Vim 関数はインクリメントする数のトリックを行うことができ、書くのは難しくありません。たとえば、Vim wikiには、これを行う方法が記載されています。も参照してください:h sub-replace-\=

function! Counter()
    let i = g:c
    let g:c = g:c + 1
    return i
endfunction

:let c=1|%s/<\w\+\zs/\=' id="' . Counter() . '"'/g

この時点でおそらく使いやすさはかなり遅れていますが、Vim の Ruby サポートはこの種のことも簡単に行うことができます:

:ruby c=0
:rubydo $_.gsub!(/<\w+/){|m| c += 1; m + ' id="' + c.to_s + '"'}

またはPerl:

:perl $c=1
:perldo s/<\w+/$& . ' id="' . $c++ . '"'/eg
于 2009-04-15T03:30:48.460 に答える
0

私には、これは編集者の仕事ではなく、awk の仕事のように思えます。

于 2009-04-15T03:33:14.070 に答える