大きなファイルを手動で変換する手間を省くために、Eclipse 内で XML ファイルを SQL ステートメントに変換しようとしています。
次のような行:
<TABLE_NAME COL_1="value1" COL_2="value2"/>
次のように変換する必要があります。
insert into TABLE_NAME (COL_1, COL_2) values ("value1", "value2");
これまでのところ、テーブル名と最初の列/値のペアを次のように一致させてキャプチャすることができました。
<(\w+)( \w+)=(".+?").*/>
終わり近くは、パターンの.*
最初の部分をテストするためだけにあり、完了したら削除する必要があります。
次の置換パターンは、次の結果をもたらします。
insert into $1 ($2) values ($3);
insert into TABLE_NAME ( COL_1) values ("value1");
私が抱えている問題は、列の数がテーブルごとに異なることです。そのため、n列/値のペアに一致し、キャプチャされたグループを置換パターンで繰り返し使用する汎用パターンが必要です。\G
良い候補のようですが、これを行う方法をまだ理解できていません。
理想的には、これは単一の正規表現ステートメントで解決されますが、順番に実行する必要がある複数のステートメントにも反対しません (ただし、開発者に列ごとに 1 回実行させる必要はありません/値のペア)。
誰にもアイデアはありますか?