Lua模式匹配,重复字符

我是一个模式匹配初学者。我已经学到 Lua 的模式匹配与标准差异很大,因此我无法将正则表达式解决方案适配到 Lua 代码中。

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

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

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

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

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

我知道我可以使用循环轻松解决此问题,但我想练习正则表达式等内容。

谢谢你的帮助。

点赞
用户1847592
用户1847592

不能使用单一的模式实现。

使用模式链:

inputString:gsub('.','\0%0%0'):gsub('(.)%z%1','%1'):gsub('%z.(%Z+)',replace)
2013-03-25 07:02:43