プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > Proserpine Macro > Commands > file regexFilter

 
 file regexFilterコマンド
Macro Top | Variables | Commands  


 

一致する行の抽出


file regexFilter: dir=(input_filepath)   file=(input_filename)   encode=(inputfile_encode)   regex=(pattern_string)

dir=file= で指定されたテキストファイルの各行に対し、 .NETの正規表現(Regular Expression)を使用して regex=で指定されたパターンにマッチする行を抽出します。

入力ファイル名は、 dir=file= で指定します。 file=にフルパスで指定する場合は、dir=の指定を行いません。
入力ファイルのエンコードは encode= で指定します。例えば、 encode="Shift_JIS" のように記述します。 encode=指定を省略した場合、入力ファイルの先頭行にエンコードタイプが US-ASCIIで記述されているものとして扱います。 記述が無かった場合はデフォルトの UTF-8 でデコードします。

出力先をファイルにする場合、 output.file= にフルパスで指定します。
出力ファイルのエンコードは output.encode= で指定します。省略した場合、 encode= と同じ値を使用します。


次の例では、ファイル F:\work\test\testfile.txt の各行に対して、
  [!]
の文字列が含まれるかをチェックし、 含まれていた場合に その行全体を出力します。


文字列 [!] を含む行を抽出

マッチングを行う正規表現パターンは、 正規表現メタ文字の [記号]記号 をエスケープする必要があるので、
  \[!\]
になります。
プロセルピナの文字列で扱う場合、更にこの \記号 をエスケープする必要があるので、
  \\[!\\]
と記述するか、\記号を 全角(\記号または¥記号)で書いて surrogateメソッドで \記号 に変換します。



 

一致する行の置換


file regexFilter: dir=(input_filepath)   file=(input_filename)   encode=(inputfile_encode)   regex=(pattern_string)   replace=(replacement_string)  

dir=file= で指定されたテキストファイルの各行に対し、 .NETの正規表現(Regular Expression)を使用して regex=で指定されたパターンにマッチする行があれば replace=のパターンで置換して出力します。
regex=でマッチしない行は、そのまま出力されます。

入力ファイル名は、 dir=file= で指定します。 入力ファイルのエンコードは encode= で指定します。
(詳細は上記一致する行の抽出を参照)

出力先をファイルにする場合、 output.file= にフルパスで指定します。
出力ファイルのエンコードは output.encode= で指定します。省略した場合、 encode= と同じ値を使用します。


次の例では、プロセルピナマクロファイル "英和/和英.txt" の各行に含まれる単語を \w+ の正規表現で検出し、
  <$&>
の置換パターンで置換して出力します。


単語を全て <~> で囲む

.NETの正規表現では <記号 及び、 >記号 はメタ文字ではなく、普通の文字として扱われます。


【参考】 置換パターンのメタ文字 (.NET Regular Expression)

置換パターン 機能
$n
n番目のグループでキャプチャされた文字列
$$
“$”そのもの
$&
正規表現に一致した文字列全体
$+
最後のグループにキャプチャされた文字列
$_
入力文字列全体


[BACK]
プロセルピナ