REGEX::Get Replaced String
置換処理後の文字列を取得
ASTER::EXPRESSION::REGEX
::Replace
正規表現を使った文字列検索と一括置換がセットになった命令です。
置換対象文字列に正規表現で一致する文字列を検索、一致した文字列をすべて置換した結果を新しい文字列としてメモリ上で保存し、その文字列を戻り値として返す。
新機能 : 制御文字送信に対応
仕様上デフォルトでは制御文字を含めて送信できませんが、オプションを有効化することで制御文字を含めた文字列送信が可能になります。これにより空白行の検出と削除が可能になりました。
注意点:1
regex.replace は少し特殊事情があり、置換対象文字列が事前に「ASTER」の Set TEXT
命令によって、拡張機能の管理するメモリ領域で予め保存されている必要があります。
Partial Match や Exact Match はコンディション
で、Replace はエクスプレッション
という違いもありますが、命令を発行する前に対象文字列を事前に「 ASTER 」へ送信する必要があるのは「 regex.replace 」だけです。
- ASTER::CONDITION::REGEX::
Match
( Exact Match ) —-> 対象文字列とキーワードを同時送信 - ASTER::CONDITION::REGEX::
Search
( Partial Match ) –> 対象文字列とキーワードを同時送信 - ASTER::EXPRESSION::REGEX::
Replace
—-> 事前に対象文字列を送信し、次にキーワードを送信
注意点:2
対象文字列に対して置換を実行し改変する命令ではない。新しい文字列として結果を返すのでソースとなった対象文字列には変更がありません。
注意点:3
Case Sensitivity ( 大文字小文字の区別 ) オプションが必要な場合、設定を有効化すれば大小区別せず検索が可能になります。デフォルト設定はオフ ( 区別する ) です。
注意点:4
置換文字列に含まれる Control Characters ( 制御文字 ) の入力は CF25 側で自動的にエスケープ処理される場合があります。置換処理に制御文字を含めたい場合、Control Character 設定を有効化してください。デフォルト設定はオフです。
注意点:5
検索機能ではないので「ミスマッチ判定」と「検索固有 ID 」は利用できません。検索に用いる「正規表現」に構文エラーがあった場合には、即時実行条件の「正規表現エラー」が利用可能です。
よくある質問
答え
CF25 のエクスプレッションが複雑になるのを避けるための処置です。
CF25 のエクスプレッションから regex.replace を利用する場合、二つの値 ( “target
” , “replacement
” ) を送信する必要があります。
e.g.
RgxReplace( "ASTER", Edittext$( "target" ), Edittext$( "replacement" ) )
現状でも可読性が悪く、パラメータ三つになると更に可読性が下がり入力ミスやバグの原因となりやすいです。 事前にデータ送信を完了しておけばパラメータが一つ減らせ、可読性がこれ以上悪くなるのを防げます。 対象文字列データには変更が無いため、文字列の置換処理が失敗だった場合でもやり直しが容易、毎回パラメータ送信する方式よりデータ転送量を減らすことが可能。