2012-07-07 380 views
0

我剛剛開始使用Lua模式。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 2012-07-07 14:52:09

+0

是!如果你有浮點數,它只會失敗。 – hjpotter92 2012-07-07 15:10:30

+0

編號。我的意思是如果字符串是'| 2 | 34 | a | 1 | ba',我也想提取字符串。 我需要提取'2','34',''a「,'1','」ba「'這可能嗎? – SatheeshJM 2012-07-07 15:16:58

相關問題