2012-06-21 89 views
-1
testA = "test.test test.test" 
    local t1 = {} 
    for X in string.gfind (testA, "[^ ]+") do 
    table.insert (t1 ,X) 
    end 
    local first = table.concat(t1, "", 1, 1); 

    --output/first test.test 

    testA = "11.11.11.11 test.test" 
    local t2 = {} 
    for X in string.gfind (testA, "[^ ]+") do 
    table.insert (t2 ,X) 
    end 
    local first = table.concat(t2, "", 1, 1); 

    --output/first 11.11.11.11 

    testA = "100.100.100.100 test.test" 
    local t3 = {} 
    for X in string.gfind (testA, "[^ ]+") do 
    table.insert (t3 ,X) 
    end 
    local first = table.concat(t3, "", 1, 1); 

    --output/first 100.100.100.100 test.test 

有誰知道爲什麼第三項不會與gfind分裂? ,無法找出爲什麼
它適用於兩個字符串,但不是第三個。的Lua gfind問題

+0

(http://ideone.com/vved5)我改變了'table.concat'語句來打印他們的結果,並且一切都如預期的那樣。所以你的問題不在你所顯示的代碼中。 –

+0

謝謝,我粘貼你粘貼的東西和它的工作,但我注意到你的代碼有一個更少的空間,testA =「100.100.100.100 <-4 spaces> test.test」與它失敗的額外空間 –

+0

我複製並粘貼*例。你的榜樣不是問題的例子,這不是我的錯。 –

回答

1

您的問題是製表符與空格不同。如果你想跳過所有空格字符,你需要實際跳過空格字符,而不是常規的空間:[你的代碼只是正常工作在IdeaOne]

string.gfind (testA, "[%S]+")