Symfoware

Symfowareについての考察blog

Luaで文字列の分割を行なう(split)

Luaでsplit的な文字列の分割が行ないたかったのですが、どうも標準ライブラリに
用意されていないようです。

http://lua-users.org/wiki/SplitJoin
ここを参考に、splitを自作してみました。

忘れないようにメモしておきます。




-- 自作split関数
function split(str, delim)
    -- Eliminate bad cases...
    if string.find(str, delim) == nil then
        return { str }
    end

    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local lastPos
    for part, pos in string.gfind(str, pat) do
        table.insert(result, part)
        lastPos = pos
    end
    table.insert(result, string.sub(str, lastPos))
    return result
end



-- テスト
s = "あああ,いいい,ううう,えええ,おおお"
t = split(s, ",")

for k,v in pairs(t) do
    print(v)
end





実行結果


C:\>lua sf_lib.lua
あああ
いいい
ううう
えええ
おおお









関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2010/07/01(木) 12:11:05|
  2. Lua
  3. | トラックバック:0
  4. | コメント:6
  5. | 編集
<<Luaで郵便番号のCSVを読み込み、Redisに登録する | ホーム | Luaでファイルの読み書きを行なう>>

コメント

サンプルソースを利用してもよろしいでしょうか?

初めまして。鬼畜大王と申します。
Luaで文字列分割を行いたく、symfoさんの書かれたsplit関数を利用、再配布等させていただきたいのですが よろしいでしょうか?
  1. 2012/09/16(日) 07:22:32 |
  2. URL |
  3. 鬼畜大王 #mQop/nM.
  4. [ 編集 ]

Re: サンプルソースを利用してもよろしいでしょうか?

ご自由にお使いください。

お役に立てるようで、嬉しいです。
  1. 2012/09/16(日) 11:35:35 |
  2. URL |
  3. symfo #-
  4. [ 編集 ]

Re: サンプルソースを利用してもよろしいでしょうか?

ありがとうございます。使わせていただきます。
  1. 2012/09/17(月) 03:13:00 |
  2. URL |
  3. 鬼畜大王 #mQop/nM.
  4. [ 編集 ]

ソースコードの利用について

はじめまして、ニコニコ動画で動画制作を行っております、Jorgeと申します。
この記事のsplit関数を組み込んだスクリプトを配布したいのですが、よろしいでしょうか?
またその際にreadmeに表示すべきことはありますでしょうか?
  1. 2017/03/21(火) 03:08:11 |
  2. URL |
  3. Jorge #-
  4. [ 編集 ]

Re: ソースコードの利用について

お役になてるようで嬉しいです!
ご自由にお使いください。
readme等へは特に記載しなくて良いですよ。
  1. 2017/03/23(木) 22:09:52 |
  2. URL |
  3. symfo #-
  4. [ 編集 ]

Re: ソースコードの利用について

ありがとうございます!
  1. 2017/03/24(金) 19:48:41 |
  2. URL |
  3. Jorge #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/455-b3f0a355
この記事にトラックバックする(FC2ブログユーザー)