
正規表現でタブ区切りの文字列の順序を入れ替える作業を試みています。
AAA BBB CCC
PPP QQQ RRR
のような文字列を
BBB CCC AAA
QQQ RRR PPP
のように2列目、3列目、1列目のように順番を入れ替えたいです。
VBScriptで1行ずつ読み込み、タブを区切り文字として、配列に放り込み、配列の順番を指定して出力すればなんとか対応できるのですが、どうしてもさくらエディタで実装したいのですが、正規表現を駆使して対応できないものでしょうか?
検索により、パターンにマッチする部分は正規表現で2列目とか3列目というのは書けるのですが、パターンマッチだけで、置換後の文字列に変数などを使用できず苦しんでいます。
正規表現を用いていれればいいし、無理なら、さくらエディタで秀丸のように配列やFOR文などを使いたいのですが、使い方がわからず、質問しました。
ご存知の方がいらっしゃれば、教えてください。
No.1ベストアンサー
- 回答日時:
ここの
「拡張式集合」
「置換で使える参照」
の組合せです。
(1列目の正規表現)\t(2列目と3列目の正規表現)
というように検索文字列を設定すると
グループ1: 1列目
グループ2: 2列目と3列目
となります。
これで、置換側で
$1
とすると、グループ1で取り込んだ内容で置換されます。$2には同様に2列目と3列目が入っているので
$2\t$1
とすれば、順番が入れかわります。
()でグループ化して取り込み→ $1,$2...で利用
というのは、常套手段ですので覚えておきましょう。
ちなみに、秀丸でもほぼ同様にできます。
正規表現でうまく表現できないような複雑なケースでもない限り、forなどのマクロを作る必要はありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
pythonでのローカルファイルか...
-
vba 正規表現について教えてく...
-
if関数とは?
-
プログラミングに興味があるの...
-
uwscでPauseキーが押されたら、...
-
Fortranでシステム時刻をカレン...
-
数行削除してコピーするbatファ...
-
秀丸エディターでの置き換え
-
vba クリップボードクリアにつ...
-
Geminiフォーム 画像生成で 人...
-
Python 3.12.2 か一番最新のパ...
-
AIがプログラムする時代のプロ...
-
pythonについて(初心者です)
-
pythonでhtmlファイルの指定文...
-
プログラム上での行のマージ方法
-
覚えることが少ないプログラミ...
-
従業員が1名だけのSierっている...
-
アルゴリズムとコードとは何で...
-
IT業で開発をされてる方々に質...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
if関数とは?
-
プログラム言語
-
pythonでのローカルファイルか...
-
著作権法について
-
vba 正規表現について教えてく...
-
画像生成AIのプロンプトの作り...
-
今のプログラミング言語
-
vba クリップボードクリアにつ...
-
プログラミングについて
-
自作scratch アニメの商用利用
-
数学、プログラミング、物理、...
-
pythonの実行に関する質問
-
pip --versionがエラーになる
-
OS入ってる機器のソフト・アプ...
-
Python... 環境設定 初心者です...
-
CSVファイルの複数行削除
-
Geminiフォーム 画像生成で 人...
-
プログラミングに興味があるの...
-
パイソンのソースコードをChatG...
-
Python 3.12.2 か一番最新のパ...
おすすめ情報