2012-07-07 1 views
0

Я только начинаю с Lua Patterns.Lua - извлечение строки с использованием узоров

У меня есть строка |2|34|56|1

Как извлечь число из строки?

Я могу разобрать строку вручную и исключить все '|' персонажи. Но я уверен, что использование шаблонов Lua будет намного проще.

Как сделать шаблоны в этом случае?

ответ

3

Если вы хотите напечатать эти цифры, лучший метод:

str = "|2|34|56|1" 
str:gsub("%d+", print) 

Иначе, если вы хотите, чтобы номер, которые будут храниться в таблице, требуется больше подхода:

str = "|2|34|56|1" 
local tFinal = {} 
str:gsub("%d+", function(i) table.insert(tFinal, i) end) 
table.foreach(tFinal, print)  -- This is only to verify that your numbers have been stored as a table. 
+0

Спасибо! если бы присутствовали какие-то строки, что было бы тогда решением? Как '' | 2 | 34 | a | 1 | ba "' – SatheeshJM

+0

Yup! Это приведет к сбою только в том случае, если у вас есть числа с плавающей запятой. – hjpotter92

+0

NO. Я имею в виду, если строка была '| 2 | 34 | a | 1 | ba', я хотел бы также извлечь строки. Мне нужно извлечь '2',' 34', '" a "', '1',' "ba" 'Это возможно? – SatheeshJM