Get Replaced String
正規表現を使ったパターンマッチング検索で一致した文字列を一括置換処理します。以下手順により「置換結果文字列」を得ます。
置換結果文字列 = Replaced String
-
置換対象文字列に対して正規表現で一致する文字列を検索
-
一致した全文字列を置換文字列で置き換えた「置換結果文字列」を「新規文字列」としてメモリ上に保存
-
置換結果文字列を受け取る
新機能 : 制御文字列の送信に一部対応
置換する文字列に制御文字を含めて送信できるようになりました。
CF25 の仕様上、デフォルトでは制御文字を送信することはできませんが、ASTER のオプションを有効化することで制御文字を含めた文字列送信が一部可能になります。
これにより改行を含めた空白行を正規表現で検出し置換する処理が可能になりました。
Parameter
ExStrRgxRepl( "ASTER", "Klick", "Click" )
利用上の注意
regex.replace 命令の実行前に必ず置換対象文字列を「ASTER」へ送信してください。
regex.replace は置換対象文字列が事前に「ASTER」の Set TEXT
命令によって、拡張機能の管理するメモリ領域で予め保存されている必要があります。
Partial Match や Exact Match は
コンディション
で、Replace はエクスプレッション
という違いもありますが、命令を発行する前に検索対象文字列を事前に「 ASTER 」へ送信する必要があるのは「 regex.replace 」だけです。
REGEX Function | Description |
---|---|
ASTER::CONDITION::REGEX::Match ( Exact Match ) |
検索対象文字列と検索文字列を同時に送信 |
ASTER::CONDITION::REGEX::Search ( Partial Match ) |
検索対象文字列と検索文字列を同時に送信 |
ASTER::EXPRESSION::REGEX::Replace |
事前に検索対象文字列を送信し、次に検索文字列と置換文字列を送信 |
置換結果文字列の受け取り
検索対象文字列に対して文字列置換を実行するが、検索対象文字列を直接上書きする命令ではない。
新しい文字列として置換結果を返すので、検索対象文字列の内容は改変しません。
Case Sensitivity Setting
Case Sensitivity の設定変更が必要な場合、オプションを有効化すれば大文字と小文字を区別しない検索が利用できるようになります。
デフォルト設定はオフ ( 区別する ) です。
制御文字列の扱い
置換文字列に含まれる制御文字は CF25 で暗黙的エスケープ処理されます。
置換処理や正規表現に制御文字を含めたい場合、Control Characters 設定を有効化してください。
デフォルト設定はオフ ( 暗黙的変換を許容する ) です。
ミスマッチ判定について
検索機能ではないので「ミスマッチ判定」と「検索用識別番号」は利用できません。
検索用識別番号 = Search uID
正規表現に構文エラーがあった場合、正規表現エラーは利用可能です。
よくある質問
なぜ regex.replace は置換対象文字列を事前に ASTER へ送信しておく必要があるのですか?
答え
CF25 のインターフェース上でエクスプレッションが複雑になるのを避けるための処置です。
CF25 のエクスプレッションから regex.replace を利用する場合、二つの値 ( “regex
” , “keyword
” ) を送信する必要があります。
RgxReplace( "ASTER", Edittext$( "regex" ), Edittext$( "keyword" ) )
-
現状でも可読性が悪く、パラメータ三つだと更に可読性が下がり入力ミスやバグの原因となりやすい。
-
事前にデータ送信を完了しておけばパラメータが一つ減らせる。
-
検索対象文字列データには変更が無いため、文字列の置換処理が失敗だった場合でもやり直しが容易。
-
毎回パラメータ送信する方式よりデータ転送量を減らすことが可能。