AI RegX 設定ファイルの作成-検索置換の自動化
設定ファイルとは、検索置換の設定を複数集めた物で、一連の検索置換を一気に処理するための独立したファイルです。
このファイルは、処理する目的に沿って複数作成できます。
仕事でよく有る事例では、クライアントから渡された ppt 書類から文章を抽出して利用する場合などで、改行をせずにスペース文字で位置合わせを行っていたり、文末に意味の無いスペースが入っていたり、句読点がカンマピリオドだったりと。
これらの文章データを整理整頓する事を例にしたいと思います。
新規に設定ファイルを作成する手順を書いてみます。
(解説ドキュメントには書いていませんでした。。。)
まず、本チャンのデータもしくは、不都合のある状態の文章を用意して、設定した事柄が上手く処理できているかを確かめます。
今回は、
- 空白文字を含む行の削除
- 行頭の空文字を削除
- 行末の空行を削除
- 句読点の変換
以上4項目の設定ファイルを作成し、対象の文章データを変換します。
AI の該当テキストフレームを選択し、RegX を起動します。
まず、確認しなければならない所は、ファイルデータドロップダウンメニューに項目が無い事。
これは、新規にファイルを作成するからです。

もし、ここに何がしかの項目がある場合は、ファイル操作ドロップダウンメニューの「全セット消去」を実行します。

このファイルデータの扱いは、まず、ファイルデータ、というRegX内部に有る記憶領域へデータセットを溜めます。
次に、このデータセットを、実態の有るファイル(テキストデータ)として書き出します。
この書き出されたテキストデータを再度読み込む事で、そのファイル固有の設定を実行する仕組みです。
もちろん、テキストファイルへ書き出さないまでも、データセットがある場合は、このセットで実行は出来ます。
まず、ファイルデータへ必要な検索置換設定を定義して行きます。
プリセットドロップダウンメニューから「空白文字を含む行の削除」を選びます。

この時点では、検索置換設定の入力欄には反映されていませんので、右の「適用ボタン」をクリックして、設定欄へ反映させます。

ファイルデータへの記録は、検索置換設定にある記述が必要です。
プリセットから適用しない、またはプリセットに無い場合は、直に検索置換設定を記述してください。
次に、ファイル操作ドロップダウンメニューから「セットに追加」を選び、任意の名称て登録します。

この作業を、必要な設定分繰り返し行います。
現時点では、RegX 上で項目の前後入れ替えなどは出来ませんので、実行する順番を検討してください。
(書き出した設定ファイルを、テキストエディタで編集する事はできます)

ファイルデータドロップダウンメニューに、登録した設定名称が現れています。
この設定セットを試します。
ファイル操作ドロップダウンメニューから「全セット実行」を選び、選択したテキストフレームへ適用します。
ファイルデータのセット内容が、登録順に自動で実行されて行きます。

結果は

希望通りに設定した内容が反映された事を確認してください。
このセット内容を、実際のファイルデータとして書き出します。

ファイル操作ドロップダウンメニューから「新規保存」を選択し、ファイル名称をつけて保存します。
これで、この一連の検索置換設定のファイルが出来ました。
今後、同じ処理をする場合に、この設定ファイルをファイルメニューの「読み込み」で、セットを読み込み実行する事ができます。
また、ファイルデータの登録した設定は、それをファイルデータドロップダウンメニューで選択し、右の適用ボタンで検索置換設定を読み込み、個別にそれだけを実行する事も出来ます。
標準のプリセットと同じ使い方が出来ますので、複数のプリセットとしても活用することができます。
AI RegX 行末の空白文字を削除
前回の「行頭の空白文字の削除」同様、強制改行を考慮します。
「行頭の空白文字の削除」の検索・置換設定を流用し仕上げます。
「行頭の空白文字の削除」の検索設定は
(^[\t ]+)|(\n[\t ]+)
置換設定は
($j2\n)
でした。
検索設定を少々変更します。
行頭マークは行末マークに変更し、強制改行で始まる所は強制改行で終わる様に書き換えます。
([\t ]+$)|([\t ]+\n)
置換設定の変更は無く、グループ2にヒット文字(空白文字と強制改行)が入った場合、強制改行で置換え、そうで無ければ、単純にヒット文字を削除です。

実行後

AI RegX 行頭の空白文字を削除
段落先頭に有る空白文字(タブ文字、半角スペース、全角スペース)を削除する、設定記述です。
まず、\s 表記には \r の改行文字が含まれますので、今回は [\t ] の様に、タブ文字、半角スペース、全角スペースの何れかという記述にして行います。
単純に、段落の先頭の空白文字を検索する設定です。
^[\t ]+
置換設定は
() パーレン2つです。
と単純に「何も無し」で置換える事で、見つかった空白文字を削除します。
ところで、行の終端が強制改行されている場合、次の行の先頭は、前エントリーの様に行頭の検索でヒットしません。
なので、強制改行と次の空白文字を探します。
\n[\t ]+
置換設定は
(\n)
ここで強制改行を戻します。
上記、2種類の設定で、別々に検索置換を行っても良いのですが、これらを一度で片付ける記述をします。
改行の場合の ^[\t ]+ または 強制改行の場合の\n[\t ]+
を記号で書けば
(^[\t ]+)|(\n[\t ]+)
となります。
置換設定では、改行の場合の () または 強制改行の場合の \n になりますが、改行・強制改行のどちらが検索でヒットしたかを判断しなければなりません。
検索設定では 2 つのグループからなっています。
グループ1は改行の設定、グループ2は強制改行の設定です。
どちらかにヒットした場合には、$1 はたは $2 に、何かしらの文字が入ります。
置換設定の特殊文字 $j を使用し、どのグループに文字が入ったかをジャッジして、置換する文字を選択させます。
($j2\n)
グループ2に文字が入った(強制改行と空白文字)場合、\n を有効にして、これで置換えます。
グループ1に文字が入った場合は、\n は無視され () 同様になります。

実行後

AI RegX 行頭と行末
正規表現で「行頭・行末」を表す記号に「 ^ $ 」を使用する。
AI の文章内で強制改行(シフト+リターン)が行われている場合、その行末あるいは次行の行頭は検出されない。
図中、上のブロックでは通常の改行、下のブロックでは強制改行をしている。
行頭にある一文字を検索してみる。

行末にある一文字を検索してみる。

一応、この現象は RegX のバグではありません。
Category
Tag
Comment
- 若洲公園キャンプ場 見てきました に PICTRIX より
- 若洲公園キャンプ場 見てきました に ( z-) より
- 凍死 に PICTRIX より
- 若洲公園キャンプ場 見てきました に PICTRIX より
- 若洲公園キャンプ場 見てきました に ( z-) より
- 凍死 に ( z-) より
- 若洲公園キャンプ場 見てきました に kin より
- 凍死 に PICTRIX より
- 凍死 に kin より
- 凍死 に PICTRIX より


