strreplace
2021/05/15 20:16
strreplace 機能
[文字列操作コマンド]文字列を置換します。
コマンドライン
strreplace <strvar> <index> <regex> <newstr>
機能説明
文字列変数 <strvar> の <index> 位置(1オリジン)から、正規表現 <regex> を検索し、文字列 <newstr> に置き換えます置換が成功すると、システム変数 <result> に "1" が格納され、正規表現 <regex> でマッチした文字列はシステム変数 <matchstr> に格納されます。
このマクロコマンドを実行すると システム変数 groupmatchstr1 ~ groupmatchstr9 の内容がクリアされます。
<strvar>
置換したい文字列を指定します。<index>
文字列のうち、置換対象とする位置を指定します。指定方法としては、1 文字目を 1 とします。
<regex>
検索したい正規表現を指定します。<regex> が <strvar> の内容にマッチせず置換が行われなかった場合は、result に "0" が格納されます。
<regex> の書式が正しくない等でエラーとなった場合は、<result> に "-1" が格納されます。
<newstr>
<newstr> が "" (空文字列) の場合は空文字へ置換されるため、結果的に <strvar> 中の <regex> は削除されます。日本語等のマルチバイト文字列を検索する場合、事前に regexoption で適切なエンコーディングを設定しておく必要があります。
パラメータの説明
指定するパラメータは以下の通りです。パラメータ | 型 | パラメータ説明 |
---|---|---|
<strvar> | 文字列 | 置換したい文字列を指定します。 |
<index> | 整数 | 置換対象とする位置を 1 文字目を 1 としてを指定します。 |
<regex> | 文字列 | 検索する正規表現を指定します。 |
<newstr> | 文字列 | パターンマッチした部分へ置換する文字列を指定します。 |
対象バージョン
バージョン 4.67 以降で利用可能です。戻り値
戻り値として以下の変数が定義されます。変数名 | 値 | 意味 |
---|---|---|
result | -1 | 書式が正しくない等でエラーとなった |
0 | パターンマッチせず置換が行われなかった | |
1 | 置換が成功した | |
matchstr | 文字列 | 正規表現でマッチした文字列 |
groupmatchstr1 | "" | 文字列がクリアされる |
groupmatchstr2 | "" | 文字列がクリアされる |
groupmatchstr3 | "" | 文字列がクリアされる |
groupmatchstr4 | "" | 文字列がクリアされる |
groupmatchstr5 | "" | 文字列がクリアされる |
groupmatchstr6 | "" | 文字列がクリアされる |
groupmatchstr7 | "" | 文字列がクリアされる |
groupmatchstr8 | "" | 文字列がクリアされる |
groupmatchstr9 | "" | 文字列がクリアされる |
関連コマンド
関連コマンドはありません。使用方法
使用例
・文字列中の .txt を .doc に置換する場合src='linux.txt' strreplace src 1 '\.txt' '.doc' messagebox src 'result' ; linux.doc・文字列中の 'can ' を削除する場合
src='I can do it.' strreplace src 1 'can\s' '' messagebox src 'result' ; 'I do it.'・文字列中のバージョン情報を組み立て直す場合
src='Microsoft Windows XP [Version 5.1.2600]' strmatch src '(Version \d+.\d+.)\d+' int2str s result messagebox s groupmatchstr1 pos=result ; 23 mstr=groupmatchstr1 ; Version 5.1. strreplace src pos mstr 'Build ' if result=1 then messagebox src 'result' ; Microsoft Windows XP [Build 2600] endif