我正在寻找在Lua模式设置中符号重复的数量。
我试图检查字符串中符号的数量。
根据手册所述,
即使有字符类,这仍然非常有限,因为我们只能匹配具有固定长度的字符串。
为解决这个问题,模式支持以下四种重复运算符:
* 匹配前一个字符(或类)零次或多次,尽可能多地匹配。 + 匹配前一个字符(或类)一次或多次,尽可能多地匹配。 - 匹配前一个字符(或类)零次或多次,尽可能少地匹配。 ? 使前一个字符(或类)可选。
因此,没有关于花括号{}的信息 例如,
为解决这个问题,模式支持以下四种重复运算符:
* 匹配前一个字符(或类)零次或多次,尽可能多地匹配。 + 匹配前一个字符(或类)一次或多次,尽可能多地匹配。 - 匹配前一个字符(或类)零次或多次,尽可能少地匹配。 ? 使前一个字符(或类)可选。
因此,没有关于花括号{}的信息 例如,
{1,10}; {1,}; {10};
无法工作。
local np = '1'
local a = np:match('^[a-zA-Z0-9_]{1}$' )
返回值为 np = nil
。
local np = '1{1}'
local a = np:match('^[a-zA-Z0-9_]{1}$' )
返回 np = '1{1}'
:)
这个链接说没有这样的魔法符号:
Some characters, called magic characters, have special meanings when used in a pattern. The magic characters are
( ) . % + - * ? [ ^ $
花括号只能作为简单文本使用,不能起到其他作用。我是不是正确的?如何避免这个“bug”?
可以在这里查看花括号的常规用法,例如这里。
\d{2,}
是%d%d+
)。另外,您可以使用Lua rex pcre库。 - moteus#np==k and not np:find'[^%w_]'
- Egor Skriptunoff> require“rex_pcre”> return rex_pcre.new(“ ^ [a-zA-Z0-9_]{2} $”):exec(“12”)
。 - Wiktor Stribiżew