这个模式^ [%w - 。] + $在Lua中是什么意思?

时间:2014-07-10 04:56:49

标签: lua lua-patterns

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

^[%w-.]+$

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

2 个答案:

答案 0 :(得分:5)

在Lua中有效,其中%w(几乎)相当于其他语言中的\w

^[%w-.]+$表示匹配一个完全由字母数字字符(字母和数字),短划线或点组成的字符串。

<强>解释

  • ^锚点断言我们位于字符串的开头
  • 字符类[%w-.]匹配一个字母或数字(%w的含义)或短划线或句点。这相当于JavaScript中的[\w-.]
  • +量词与此类字符匹配一次或多次
  • $锚点断言我们位于字符串的末尾

<强>参考

Lua Patterns

答案 1 :(得分:4)

实际上它什么都不匹配。因为存在错误:w-这是文本范围的开头,而且它是乱序的。所以它应该是%w\-

  

^ [%(重量)\ - ] + $

意思是:

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

修改

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

作为@ zx81评论:

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