2013-09-24 12 views
5

Stosuję funkcję, ale wygląda tak źle.Czy istnieje ciąg lua.find bez wzoru

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 

Odpowiedz

6

Sposób string.find zapewnia opcjonalny parametr 4th egzekwowania plaintext search sama.

Na przykład:

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

daje poprawne wyniki.

cytując Lua ręczne strony:

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

Wartość true jako czwarty, opcjonalny argument plain wyłącza wzór pasujący obiektów, więc funkcja robi zwykły „znaleźć podciąg” operacji , bez znaków we wzorcu uznawanych za magię. Zauważ, że jeśli podasz plain, to musisz podać także.

+0

Przyjemnie, okazuje się, że wykonałem niepotrzebną pracę. Zmieniłem także twoją odpowiedź, odkąd usunąłem swoją. –

Powiązane problemy