2013-09-24 8 views
5

Applico una funzione, ma sembra così male.C'è una stringa Lua. Senza modello

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 

risposta

6

Il metodo string.find fornisce un quarto parametro opzionale per imporre una plaintext search di per sé.

Ad esempio:

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

vi darà i risultati corretti.

citando le pagine di manuale Lua:

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

Un valore di true come quarta operazione, argomento opzionale plain spegne il pattern matching strutture, quindi la funzione fa una pianura "trovare sottostringa" , senza personaggi in pattern considerati magici. Si noti che se viene indicato plain, è necessario fornire anche init.

+0

Bello, risulta che ho fatto il lavoro non necessario. Ho anche modificato la tua risposta da quando ho eliminato la mia. –