2013-09-02 22 views
5

Sto utilizzando Lua string.match per estrarre alcuni valori di un codice HTML ma sto riscontrando alcuni problemi con alcuni attributi.Lua string.match per estrarre alcuni valori di un codice HTML

Per estrarre un numero di telefono come questo: 0000-0000, sto usando la maschera:

local value = string.match(STRING, "%d%d%d%d-%d%d%d%d") 

Ma Lua sta tornando qualcosa di simile: "0000000"

Dov'è il "-" nel mezzo della stringa della maschera?

E c'è un modo per fare qualcosa di simile:

"%d[4]-%d[4]" (specificando come appariranno molti caratteri nella stringa)

+0

Per rendere più chiaro il contesto, è possibile aggiungere anche ciò che 'STRING' contiene quando viene chiamato' string.match'? – greatwolf

+0

In realtà la stringa è un codice HTML dopo un metodo GET. :) – Crasher

risposta

7

- è un carattere di controllo speciale in Lua patterns. Dal momento che si desidera il carattere letterale-, è necessario sfuggire con il carattere %. Quindi utilizzare %-.

+0

'% -' potrebbe funzionare anche :) – hjpotter92

+0

@ hjpotter92: Ho usato Regex per un po ', quindi ho dimenticato il personaggio di fuga di Lua. –

+0

Non funziona con \ - ma funziona con% -. Grazie mille Nicol e hjpotter! – Crasher