strreplace

【Tera Term マクロ言語】コマンドリファレンス

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

サンプル

サンプルマクロはありません。

備考

特にありません。