Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua “如何匹配”;abcabc“;从「;abcabed";?_Lua - Fatal编程技术网

Lua “如何匹配”;abcabc“;从「;abcabed";?

Lua “如何匹配”;abcabc“;从「;abcabed";?,lua,Lua,我可以使用(abc)+匹配“abcabc” 但我在Lua怎么办? 我的方式: 有更好的方法吗?也可以尝试以下方法: s="xabcabcabcyz" p="" t=nil repeat m=t p=p.."abc" t=string.match(s,p) until t==nil print(m) 如果你说的是一个具体的例子,就是完全按照你的要求去做,那么其他两个答案提供了合理的选择。如果您讨论的是一般情况(搜索字符串而不是字符)。。。你没有 Lua的模式不是正则表达式

我可以使用
(abc)+
匹配
“abcabc”

但我在Lua怎么办?
我的方式:

有更好的方法吗?

也可以尝试以下方法:

s="xabcabcabcyz"
p=""
t=nil
repeat
    m=t
    p=p.."abc"
    t=string.match(s,p)
until t==nil
print(m)

如果你说的是一个具体的例子,就是完全按照你的要求去做,那么其他两个答案提供了合理的选择。如果您讨论的是一般情况(搜索字符串而不是字符)。。。你没有


Lua的模式不是正则表达式。它们只是一个模式匹配系统。它们的功能比使用regexs时受到的限制更大,但实现要小得多。如果您需要完全的正则表达式支持,您可以找到一个。

这并不能解决OP带来的问题。它可以查找所有出现的
“abc”
,而不仅仅是第一次连续重复。
s="xabcabcabcyz"
p=""
t=nil
repeat
    m=t
    p=p.."abc"
    t=string.match(s,p)
until t==nil
print(m)
str = "abcabced"
results = {}
for match in string.gmatch(str, "abc") do
    table.insert(results, match)
end

print(table.concat(results))