パーソナルツール

文字列型

作者: 小見 拓 最終変更 2012年01月08日 12時14分

文字列型

  • 「"(ダブルクォート)」か「'(シングルクォート)」で囲むと、文字列として扱われる。
:echo "Hello World"
"# => Hello World

:echo 'Hello World'
"# => Hello World
  • 「"(ダブルクォート)」「'(シングルクォート)」では、文字列中の「\」の扱いが違う。
:echo "Hello\ World"
"# => Hello World

:echo 'Hello\ World'
"# => Hello\ World
  • 正規表現を含む文字列を扱う場合、「\」が頻出するので「'(シングルクォート)」を使うと良い。
:let str = 'Hello Hello Hello'
:let found = match(str, '\( Hello\)\{2}', '')
:echo found
"# => 5

文字列の操作

  • 文字列を連結する。
:echo "AAA" . "BBB"
"# => AAABBB
  • 文字列の長さを調べる。
:echo strlen("AAA")
"# => 3
:echo strlen("マルチバイトな日本語文字列")
"# => 26
:echo strlen(substitute("マルチバイトな日本語文字列", ".", "x", "g"))
"# => 13
  • 部分文字列の抜き出し。
:echo "ABCDEFGHIJ"[3]
"# => D
:echo "ABCDEFGHIJ"[3:]
"# => DEFGHIJ
:echo "ABCDEFGHIJ"[3:6]
"# => DEFG

:echo strpart("ABCDEFGHIJ", 3, 1)
"# => D
:echo strpart("ABCDEFGHIJ", 3)
"# => DEFGHIJ
:echo strpart("ABCDEFGHIJ", 3, 4)
"# => DEFG

:echo "マルチバイトな日本語文字列"[7:8]
"# => 文字化け

:let splitted = split("マルチバイトな日本語文字列", '\zs')
:echo join(splitted[4:6], "")
"# => イトな
  • 文字列の検索。
:echo stridx("ABCDEFGABCDEFG", "CDE")
"# => 2
:echo strridx("ABCDEFGABCDEFG", "CDE")
"# => 9

:echo match("ABCDEFGABCDEFG", "CDE")
"# => 2
:echo match("ABCABCABC", "ABC$")
"# => 6
  • 文字列の分割。
:echo split("AAA,BBB,CCC,DDD,EEE", ",")
"# => ['AAA', 'BBB', 'CCC', 'DDD', 'EEE']
  • 文字列の置換。
:echo substitute("ABCDEFGABCDEFG", "AB", "HIJ", "g")
"# => HIJCDEFGHIJCDEFG

:let var = "ABCDEFGABCDEFG"
:let replaced = substitute(var, "AB", "HIJ", "g")
:echo var
"# => ABCDEFGABCDEFG
:echo replaced
"# => HIJCDEFGHIJCDEFG
ドキュメントアクション
コメント
blog comments powered by Disqus