2017-08-28 48 views
1

说我有一个模式,一个字符串:格式化字符串以适应Lua中的模式?

String = "ABCDEF" 
Pattern = "%w%w%w - %w%w%w" 

怎样才能让String比赛Pattern格式,所以它成为"ABC - DEF"

+0

'String = String:gsub(“()”,{[4] =“ - ”})' –

+0

不清楚:你能改变模式吗?如果是的话,请看Yu的答案。如果不是,请详细解释当前的情况。 –

回答

3

使用string.gsub

string.gsub("ABCDEF", "(%w%w%w)(%w%w%w)", "%1 - %2") 

请注意,这将替换模式的所有出现。

0

没有一对一的匹配字符串,模式和捕获。 对于相同的字符串,可以通过几种模式产生相同的捕获。 另外,如果您的示例中的"%w%w%w - %w%w%w"是Lua字符串模式,则 字符串"ABC - DEF"与它不匹配。与其匹配的模式可以是 %w%w%w %- %w%w%w%w+%W+%w+%w*%s*.%s*%w*或其他几种。 因此,我建议定义自己真正需要的规则子集和 实现您自己的函数来处理它。