秀丸マクロ: 文字列処理

文字列リテラル ""

文字列リテラルは""(ダブルクォート)で囲みます。 文字列型変数の先頭は$です。

$s = "hello";

連結 +

文字列を連結する場合は + を使います。

// 連結
$s = "hello" + " world";

message $s;  // Hello world

改行・タブ

改行は「\n」、タブは「\t」です。

// 最後に改行
$s = "hello world\n";

// 最後にタブ
$s = "hello world\t";

長さ strlen()

文字列の長さを取得する場合は strlen() 関数を使います。戻り値は数値型。

注意点は、全角文字を2文字として数える所です。

// 半角文字
$s = "abcde";

#len = strlen($s);

message str(#len); // 5

// 全角文字
$s2 = "あいうえお";

#len2 = strlen($s2);

message str(#len2); // 10

部分文字列 midstr()

部分文字列を取得する場合は、midstr() 関数を使います。 全角文字は2文字として数えます。

書式
midstr(文字列, 開始位置, 取得文字数)

第3引数を省略した場合は、開始位置から最後までの文字列を返します。

$s = "abcde";

$ret = midstr($s, 1, 3);  // bcd

$ret = midstr($s, 3, 1);  // d

// 第3引数を省略
$ret = midstr($s, 1);     // bcde

全角文字の場合

全角文字の場合は2文字として数えるので少しややこしくなります。 下のサンプルコードで確認してください。

$s = "あいうえお";

$ret = midstr($s, 2, 4);  // いう

左から取得 leftstr()

左から文字列を取得する場合は、leftstr() 関数を使います。 全角文字は2文字として数えます。

書式
leftstr(文字列, 文字数)
$s = "abcde";

$ret = leftstr($s, 2);  // ab


$s = "あいうえお";

$ret = leftstr($s, 2);  // あ

右から取得 rightstr()

右から文字列を取得する場合は、rightstr() 関数を使います。 全角文字は2文字として数えます。

書式
rightstr(文字列, 文字数)
$s = "abcde";

$ret = rightstr($s, 2);  // de


$s = "あいうえお";

$ret = rightstr($s, 2);  // お

文字列検索 strstr()

文字列検索をする場合は、strstr() 関数を使います。 検索文字が見つかった場合はその位置を返し(先頭は0)、 見つからなかった場合は -1 を返します。 全角文字は2文字として数えます。

書式
strstr(文字列, 検索文字列)

strstr(文字列, 検索文字列, 開始位置)

(補足)最後から数える場合は「strrstr()」を使います。

$s = "abcde";

#num = strstr($s, "d");  // 3

#num = strstr($s, "b", 3);  // -1

$s = "あいうえお";

#num = strstr($s, "え");  // 6

分割 split()

書式
split(配列, 文字列, 区切り文字)

・戻り値は数値型(分割された数)

詳しくはコチラ: 文字列を分割 split()