2013-09-24 29 views
5

我應用了一個函數,但看起來很糟糕。有沒有模式的Lua string.find

function find_without_pattern(s1,s2) 
    for i =1,#s1-#s2+1 do 
     local t = string.sub(s1,i,#s2+i-1) 
     if t == s2 then 
      return i,i+#s2-1 
     end 
    end 
end 

回答

6

string.find方法提供了一個可選第四參數本身執行一個plaintext search

例如:

string.find("he#.*o", "e#.*o", 1, true) 

會給你正確的結果。

引述的Lua手冊頁:

string.find (s, pattern [, init [, plain]])

true的值作爲第四,可選參數plain關閉配套設施的圖案,所以該函數的純「找到子串」操作,沒有模式中的字符被認爲是魔術。請注意,如果給出plain,則還必須給出init

+0

不錯,原來我做了不必要的工作。自從我刪除了我之後,我也編輯了你的答案。 –