秀丸マクロ: 文字列処理
文字列リテラル ""
文字列リテラルは""(ダブルクォート)で囲みます。 文字列型変数の先頭は$です。
$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(配列, 文字列, 区切り文字) ・戻り値は数値型(分割された数)