在Lua中使用正则表达式查找前导星号

use*_*703 2 regex lua special-characters

我试图找出一个字符串是否具有06个前导星号,例如,如果该字符串具有“ ****** abc”,那么如果该字符串具有“ * abc ”或“ ** abc”或“ *”,则通过失败

我已经在网上尝试过(https://www.lua.org/cgi-bin/demo

s1 = "**"

if (string.match(s1, '^****$')) then
 print "pattern matches"
else
 print "pattern does not match"
end
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。

Pig*_*let 6

Lua参考手册6.4.1模式中:

字符类:字符类用于表示一组字符。描述字符类时允许使用以下组合:

x :(其中x不是魔术字符^ $()%。[] * +-?之一)表示字符x本身。

...

%x :(其中x是任何非字母数字字符)表示字符x。这是逃脱魔术角色的标准方法。

所以*是一个魔术人物。除非在像的字符类中使用过,否则必须转义[*]

与任何以6个星号开头的字符串匹配的模式是 "^%*%*%*%*%*%*[^*]+"

[^*]+确保您的剩余字符串不包含其他的星号。通过匹配至少一个非星号字符。

[^ set]:表示集合的补码,其中集合的解释如上。

...

单个字符类,后跟“ +”,它与该类中的一个或多个字符重复匹配。这些重复项将始终匹配最长的序列;