Lua模式匹配,重复字符

时间:2013-03-25 05:34:52

标签: regex lua

我是模式匹配的初学者。我已经了解到Lua的模式匹配与标准略有不同,所以我无法找到一种方法来将regex解决方案适应这个问题转换为Lua代码。

我正在尝试替换字符串中重复字符的最长子字符串。

例如,在abbbccccc中,它会找到a,bbb,ccccc。

这不起作用,它只匹配整个字符串:

string.gsub(inputString, "(.+)", function (n) return replace(n) end)

我可以看到为什么它不起作用,但我找不到另一种方式。

我知道我可以使用循环轻松解决这个问题,但我正在尝试使用正则表达式进行更多练习。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

inputString:gsub('.','\0%0%0'):gsub('(.)%z%1','%1'):gsub('%z.([^%z]+)',replace)