一括置換マクロ用relファイルの書き方
【ごあいさつ】
お久しぶりです。
忘れた頃にやってきた更新です。
先日、一括置換マクロ記事に「スキ」を押してくださった方がいたので、では、置換relの書き方もアップしておこうかと思い、昨年作ったマニュアルを載せてみます。
例文が幾つか載っているのですが、たまに間違っていることがあります。使いたいのが間違っていたらごめんなさい。4.正規表現があってるかどうかの確認方法で確認してください。
マニュアル内にはないのですが、エンコードはshift-jisでやっています。ユニコードなどほかのエンコードの場合、少し動作が違う場合がありますので、ご了承ください。
【一括置換マクロ用relファイルの書き方マニュアル】
1. 一括置換マクロ
一括置換マクロは、置換文字列を別ファイルにまとめておいて一括で確認しながら置換していくマクロです。打ち間違いや誤変換などのパターンをまとめておいて、1つずつ検索・置換手間を省きましょう。
秀丸エディタver8.99.2で確認しています。バージョンによって動作に違いがある場合があります。
データファイルは、拡張子がrelです。
2.tikan.macとtikan2.macの違い
tikan.macは、「nasi」の指定がなければ、確認ありで置換します。
tikan2.macは、「ari」の指定がなければ、確認なしで置換します。
3.relファイルの書式
〔置換用ファイル名〕
好きな名前.rel
※拡張子をrelにして、あとは好きな名前を付けてください。
〔置換用ファイルの書式〕
(行頭)置換文字列<TAB>検索文字列<TAB>コメント
※1 検索・置換は,すべて正規表現使用です。
※2 コメントに「nasi」または「ari」と入力すると,2.の動作をします。
※3 行頭に「#」または「?」があると,その行は置換せずにスキップします。
※4 確認ありのとき,2つ以上置換したい場合は「置換の確認」で「置換+次」を選んでください。「置換」だと1つしか置換しません。(WZバージョンとの違い)
※5 最後に置換した数を表示しません(WZバージョンとの違い)
〔置換文字列・検索文字列の書き方〕
正規表現とは、幾つかの文字列を一つの形式で表現するための表現方法です。活用も含めた複数のパターンや、より条件を絞った形での検索・置換ができます。
一括置換マクロでの検索・置換はすべて正規表現を使用しています。しかし、半角括弧や正規表現に使う特別の記号を使わなければ、正規表現を使用しない検索もできます。
正規表現については秀丸のヘルプで、正規表現を検索すると詳細な説明があります。
私もすべての正規表現を使えているわけではありませんが、以下使用頻度が高い正規表現について説明します。
[ ] キャラクタクラス (括弧は半角)
[ ]内に記述された文字のうちのどれか1つを示す
例:検索文字=[こそあど]ういう風[なに]
検索結果=こういう風に、そういう風な、など。
( ) パターンをグループ化する (括弧は半角)
( )内に記載された文字をひとつのグループとして扱います。\1~\9を置換文字列にすると、検索文字列で検索した文字列を置換語として置換します。
検索文字列には9つまでの( )が使用できます。置換文字列には、検索文字列の( )の前から順番に数字をつけて使えます。
例:検索=上って行([かきくけこっ]) 置換文字列=上ってい\1
検索結果=上って行く → 置換結果=上っていく
上って行っ → 置換結果=上っていっ
例:検索=対([策応])を取([らりるれろっ]) 置換=対\1をと\2
検索結果=対策を取る 置換結果=対策をとる
対応を取ら 置換結果=対応をとら
^ 行頭 (またはキャラクタクラス内での補集合) (記号は半角)
検索文字列の先頭に書くと、行頭から検索文字列がある行を示します。
[^ ]と書くと、[ ]に含まれてる文字ではない文字であることを示します。
置換文字列には^不要。
例:検索=^▼◆ 置換=▲\1
検索結果=(行頭)▼はい、そうです。 置換結果=(行頭)▲はい、そうです。
例:検索=貸し出し([^たてま]) 置換=貸出し\1
検索結果=貸し出しの 置換結果=貸出しの
※貸し出した、貸し出して、貸し出しま は検索されない。
$ 行末 (記号は半角)
検索文字列の最後に書くと、検索文字列が業のの最後であることを示します。
置換文字列には$不要。
例:検索文字列=を示す。$ 置換文字列=を示す
検索結果=を示す。(行末) 置換結果=を示す(行末)
. 改行を除く任意の1文字 (半角のピリオド)
「任意の1文字」とは、「何か1文字」という意味です。何でもいいから何か文字が1つ入ってることを示しています。
例:検索文字列=場(.[治納修])ま([らりるれろっ]) 置換文字列=場\1収\2
検索結果=場が治まる 置換結果=場が収まる
検索結果=場は修まら 置換結果=場は収まら
直前のパターンの0回以上の繰り返し (半角のアスタリスク)
直前のパターンとは、直前の文字、()や[]、.(ピリオド)など、*の直前に書かれたものを示します。0回以上なので、0文字から最大は不明ですが複数文字なので、使用する際は注意が必要です。
例:検索文字列=^▲・。 置換文字列=▲・・・・・・。
検索結果=(行頭)▲。 置換結果=▲・・・・・・。
検索結果=(行頭)▲・・。 置換結果=▲・・・・・・。
例:検索文字列=金利(.)載せ([るてたなよれしす、。]) 置換文字列=金利\1乗せ\2
検索結果=金利載せ。 置換結果=金利乗せ。
検索結果=金利を載せて 置換結果=金利を乗せて
検索結果=金利が高くて上載せする 置換結果=金利が高くて上乗せする
直前のパターンの1回以上の繰り返し (半角のプラス)
直前のパターンとは、直前の文字、()や[]、.(ピリオド)など、+の直前に書かれたものを示します。1回以上なので、1文字から最大は不明ですが複数文字なので、使用する際は注意が必要です。
例:検索文字列=^▲・+。 置換文字列=▲・・・・・・。
検索結果=(行頭)▲・。 置換結果=▲・・・・・・。
検索結果=(行頭)▲・・。 置換結果=▲・・・・・・。
例:検索文字列=金利(.+)載せ([るてたなよれしす、。]) 置換文字列=金利\1乗せ\2
検索結果=金利を載せる 置換結果=金利を乗せる
検索結果=金利が高くて上載せする 置換結果=金利が高くて上乗せする
※例では「(行頭)▲。」と「金利載せ。」は検索に引っ掛からない。
? 直前のパターンが0回または1回現れる (半角のクエスチョンマーク)
直前のパターンとは、直前の文字、()や[]、.(ピリオド)など、?の直前に書かれたものを示します。0回か1回現れるときに使用します。
例:検索文字列=録音(.?)と([らりるれろっ]) 置換文字列=録音\1取\2
検索結果=録音とっ 置換文字列=録音取
検索結果=録音がとれ 置換文字列=録音が取れ
| パターンの論理和 (半角の縦線。SHIFT+¥)
左|右 と書いて、右か左かどちらか一方を示します。「右」「左」が1文字の場合は[右左]と同じ結果になりますが、[]と違い、「右手|左手|右上腕|左下肢」のように複数文字でも使用できます。
例:検索文字列=附せん|付箋|付せん|ふせん 置換文字列=附箋
検索結果=附せん 置換結果=附箋
例:検索文字列=事(件|故)[似|に]会合あ 置換文字列=事\1に遭\2
検索結果=事故似合う 置換文字列=事故に遭う
検索結果=事件に会っ 置換文字列=事件に遭っ
\ エスケープ文字 (エスケープシーケンス) (半角の円マーク)
検索文字列の( )と組み合わせて、\1~\9を置換文字列にすると、検索文字列で検索した文字列を置換語として置換します。検索文字列には9つまでの( )が使用できます。置換文字列には、検索文字列の( )の前から順番に数字をつけて使えます。
また、検索文字列内でも同様に使用できます。
また、今まで出てきた「*.?\」の前に付けると、その文字の特別な機能をなくして、文字そのものを表します。[]内でも使えます。
置換文字列に「\」一文字だけ指定すると、検索文字列を消します。
例:検索文字列=([\¥][0-9,0-9,]+)[??] 置換文字列=\1也
~~半角の「\」 ~~半角の「?」
検索結果=\34,239? 置換結果=\34,239也
検索結果=¥34,239? 置換結果=¥34,239也
例:検索文字列=(.+)\1 置換文字列=\1\1★
検索結果=ルンルン 置換結果=ルンルン★
検索結果=をを 置換結果=をを★
例:検索文字列=^。\n 置換文字列=
検索結果=(行頭)。(改行) 置換結果=(「。」だけの行が消えます)
\n 改行 改行です。
\t タブ タブです。
\r 復帰 速記録作成では使いません。
\s 空白 [\t\r\n]と同じです。
\S \s以外 [^\t\r\n]と同じです。
\d 数字 [0-9]と同じく半角の算用数字です。全角は対象ではないので全角の場合は[0-9]とします。
\D \d以外 [^0-9]と同じです。全角は対象ではないので全角の場合は[^0ー9]とします。
\c 英数字と「」 [a-zA-Z0-9]と同じです。全角は対象ではないので全角の場合は[A-Za-z0-9 _]とします。
\C \c以外 [^a-zA-Z0-9_]と同じです。全角は対象ではないので全角の場合は[^A-Za-z0-9_]と します。
\i 英字と「」 ([a-zA-Z]と同じです。全角は対象ではないので全角の場合は[A-Za-z_]としま す。
\I \i以外 ([^a-zA-Z_]と同じです。全角は対象ではないので全角の場合は[^A-Za-z_]とします。
[ぁ-ん] 平仮名全部
[ァ-ヶー] カタカナ全部と長音
[亜-黑] 漢字全部
[A-Za-z] 半角アルファベット全部
[A-Za-z] 全角アルファベット全部
[0-9] 全角算用数字全部
[0-9] 半角算用数字全部 →「\d」でも。
4.正規表現が合っているかの確認方法
作った正規表現が合っているかどうか確認したいときは、秀丸の置換ボックスを使って、
大文字小文字の区別=OFF
単語の検索=OFF
正規表現=ON
あいまい検索=OFF
で実際に置換してみると、動作が確認できます。
検索がうまくいかないときは、検索ボックスで検索文字列の動作確認もできます。
5.置換用ファイルの例文
以下、例文です。
「ARI」「NASI」は入っていません。必要に応じて入れてください。頂いたものは同じようなものもあるので、ご注意ください。ご自分の環境に合わせて書き換えてください。
\1ふう\2 ([こそあど]ういう)風([なに]) こういう風に→こういうふうに
上ってい\1 上って行([かきくけこっ]) 上って行く→上っていく
対\1をと\2 対([策応])を取([らりるれろっ]) 対応を取る→対応をとる
▲\1 ^▼◆ (行頭)▼はい、そうです。→▲はい、そうです。 ^は行頭を表す。置換文字列には不要。
貸出し\1 貸し出し([^たてま]) 貸し出しを→貸出しを 貸し出した、貸し出して、貸し出しま は検索されない。
を示す を示す。$ を示す。(行末)→を示す $は行末を表す。置換文字列には不要。
場\1収\2 場(.)([治納修])ま([らりるれろっ]) 場が修まる→場が収まる .(半角ピリオド)は任意の1文字(何でもいいから1文字)を表す。
▲・・・・・・。 ^▲・*。 (行頭)▲。→▲・・・・・・。 ・の0回以上の繰り返しなので、「▲・。」「▲。」もヒットする。(前橋では、沈黙は「・・・・・・。」と表記する。)
▲・・・・・・。 ^▲・+。 (行頭)▲・。→▲・・・・・・。 ・の1回以上の繰り返しなので、「▲。」はヒットしない。
金利\1乗せ\2 金利(.*)載せ([るてたなよれしす、。]) 金利載せる→金利乗せる 「金利載せる」「金利を載せる」両方ヒットする。
金利\1乗せ\2 金利(.+)載せ([るてたなよれしす、。]) 金利を載せる→金利を乗せる 「金利載せる」はヒットしない。「金利で受け取った金を車に載せて」はヒットするので注意。
録音\1取\2 録音(.?)と([らりるれろっ]) 録音とって→録音取って 「.?」任意の一文字が0回か1回あるという意味。録音とる、録音がとれる、録音をとった、などがヒットする。。
附箋 附せん|付箋|付せん|ふせん 付箋→附箋 いろいろな「ふせん」を「附箋」に置き換える。
事\1に遭\2 事(件|故)[似|に]会合あ 事故似合う→事故に遭う 事故に遭う、事件に遭う に統一する。
\1\1★ (.+)\1 一つ一つ→一つ一つ★ 「をを」「いちいち」「ルンルン」など、同じ文字(列)が重なっている場合に確認用に★をつける。
\1也 ([\¥][0-9,0-9,]+)[??] ¥3,890?→¥3,890也 ¥か\で始まる全角半角数字カンマが続く文字列に?か?がついてるとき、?か?を也の文字に置き換える。速記録で使うことはないと思うけど、例文として載せておく。
\ ^。\n 「。」の1文字だけの1行を削除。
▼検察官証拠番号\1\2\3を示す ▼([甲乙])第([1234567890]+)号証(.*)を示す ▼甲第3号証添付の現場見取図を示す→▼検察官証拠番号甲第3添付の現場見取図を示す \1には、検索文字列の1番目の()部分にある「甲」又は「乙」が入る。\2には2番目の()部分にある書証番号の数字が入り、「号証」は削除される。「号証」に続いて何らかの文字(書証の標題や枝番など)がある場合は、\3のところに残る。
\ ♭区 右Kが触れてしまった場合、「♭区」のみ削除。
か。\n かんん 「 K A NOIA 」となった場合、改行を挿入。
。\nはい。\n 。はい。\n 「はい」の前に改行を挿入。
。\nはい。 。はい。$ 「はい」の前に改行を挿入。↑の違う書き方。
示す 示す。$ 提示行為の不要な「。」を削除。
\ ^◆\n ◆だけの1行を削除。
★ ^◆$ ◆1文字だけの行を★に置き換える。
★ ^▲$ ▲1文字だけの行を★に置き換える。
★ ^$ 何もない行を★に置き換える。
固\2\3 ([硬堅]|かた)([くい])(結|約束|信頼) 固く結ぶ、固い約束、固い信頼に直す。
\t\1\2\t名詞*\n ^([^\t@:】\n]+)\n タブ・@・:・】を含まない文字列の1行を「タブ+検索結果文字列+\t名詞」という1行に置き換える。ステコなどを使わずにユーザー辞書データを作るときに使用。
\1 \n(.+)\n\1$ 全く同じ行が2行続いているとき、1行を削除。ただし、連続して同じ行が3行以上あると、2行ごとにヒットするので、2回かけたほうがよい。relファイルを結合するときなど、同じ行を削除したいときに使用。
*至る所 (至|いた)る(ところ|所) 「至る所」として確認マーク*をつけて後で確認する
\1*誤解を解\2 ([^*])誤解を解と 公用文表記と違う「誤解をとく」としたいところにあらかじめ「*」をつけて置換の対象外としておき、ほかの「誤解をとく」を「*誤解を解く」と置換する方法。
▲はい。 裁判員8|裁判員7 「はい。」の打ち損ないを直す
示す\n 左遷ん|前んん 「しめ・ん・ん」の打ち損ないを直す
\1。\n ^([^▼\s].+[^。)す])\n ・行末に句点のないところに句点を付けたい(付けたくないときもあるので「ari」のほうがよい)
(送り仮名を整える方法)
※「問合・問合せ・問い合わせ」を適切に置換するため、3つのデータの順番はこの順番がよい。
問合\1\2 問い合わせ([状])|問合せ([状])
問合せ\1\2\3 問い合わせ([^てたるなよま状])|問合せ([^状]) 名詞のときは「問合せ」
問い合わせ\1\2\3 問合わせ([てたるなよま])|問合せ([てたるなよま])|問合([てたるなよま]) 動詞のとおきは「問い合わせ」
\1いる方 ([^言使低高悪短長若な])い方 「いる方」になってるかなってないか確認
\1ら、 ([た])ランク 右の終わり音が「た」次左「ら」、次中「、」というストロークのとき、読点符号が前のストロークにくっついたのを直す
しょうか。 消化。$ 行末に「消化」ときたら「しょうか」と直す
\1第\2号証\3を示す ▼([甲乙丙])([0-9]+)号証(.*)を示す 「第」が抜けてるのを入れる
▼\1第\2を示す ^▼([甲乙丙])([0-9]+号証[0-9、の(ないし)]*)を示す$ 「第」が抜けてるのを入れる
\1第\2を示す ^(▼[甲乙丙])([^第]+)を示す$ 「第」が抜けてるのを入れる
([一二三四五六七八九十百何数])かヶ \1箇\2 前が漢数字のときは不定数詞で「箇」
\1度を超 ([0-9])度を越 (温度)度を超える
\1度を越 ([^0-9])度を超 (温度以外)度を越す
\1い\2 ([亜-黑]書.?)行([かきくけこっ]) ~書がいく。書類がいったときはひらがな。
\1く\2 ([亜-黑]書.?)来([るれ]) ~書がくる。書類のときはひらがな。
\1き\2 ([亜-黑]書.?)来([たてま]) ~書がきた。書類のときはひらがな。
\1こ\2 ([亜-黑]書.?)来([なよ]) ~書がこない。書類のときはひらがな。
6.特殊な置換
半角英数字、記号を全角に変換して置換します。説明は省略します。
詳しく知りたい方はヘルプを御覧ください。
((0,ToUpper),ToZenkakuAlnum) \c|@|・
この記事が気に入ったらサポートをしてみませんか?