Lua 这个模式是什么^[%w-.]和#x2B;$你是说卢阿?

Lua 这个模式是什么^[%w-.]和#x2B;$你是说卢阿?,lua,lua-patterns,Lua,Lua Patterns,刚遇到这种模式,我真的不明白: ^[%w-.]+$ 你能给我一些例子来匹配这个表达式吗?在Lua中有效,其中%w几乎等同于其他语言中的\w ^[%w-.]+$表示匹配完全由字母数字字符(字母和数字)、破折号或点组成的字符串 解释 ^锚定声明我们位于字符串的开头 字符类[%w-.]匹配一个字母或数字字符(即%w的含义)、破折号或句点。这相当于JavaScript中的[\w-.] +量词与这样的字符匹配一次或多次 $锚点断言我们在字符串的末尾 参考 实际上,它与任何东西都不匹配。因为有一个错误

刚遇到这种模式,我真的不明白:

^[%w-.]+$

你能给我一些例子来匹配这个表达式吗?

在Lua中有效,其中
%w
几乎等同于其他语言中的
\w

^[%w-.]+$
表示匹配完全由字母数字字符(字母和数字)、破折号或点组成的字符串

解释

  • ^
    锚定声明我们位于字符串的开头
  • 字符类
    [%w-.]
    匹配一个字母或数字字符(即
    %w
    的含义)、破折号或句点。这相当于JavaScript中的
    [\w-.]
  • +
    量词与这样的字符匹配一次或多次
  • $
    锚点断言我们在字符串的末尾
参考


实际上,它与任何东西都不匹配。因为有一个错误:
w-
这是文本范围的开始,它不符合顺序。所以它应该是
%w\-

^[%w\-.]+$

指:

  • ^
    在字符串开头断言位置
  • [%w\-.]+
    匹配下表中的单个字符
  • +
    量词:在一次和无限次之间,尽可能多的次数,根据需要回馈[贪婪]
  • %w
    列表中的单个字符%w(区分大小写)
  • \-
    匹配字符-按字面意思
  • 文本字符
  • $
    在字符串末尾断言位置
编辑

随着OP改变了问题和标签,这个答案不再适合作为正确的答案。这是基于答案的

如@zx81所示,请注意:

  • %w
    Lua中是
    \w
    ,表示任何字母数字字符加上“\uu”

这很简单,我建议您仔细阅读一下正则表达式。实际上,这来自一个lua脚本:local return\u domain\u name=urlReq:match(“^[%w-.]+$”),这就是为什么声明应该始终在标记中包含正则表达式的原因。我删除了正则表达式标记,因为lua模式不是正则表达式,有关详细信息,请参阅。仅供参考,您的答案不再有效。原来
%w
在Lua中是
\w
。)您好@zx81我将编辑它,将信息放在它是基于POSIX的答案,它不再适合OP更改的问题。谢谢