Lua模式设置中符号的重复量
我正在寻找Lua模式设置中重复符号的数量.
我尝试检查字符串中的符号数量. 正如我在 manual读到的那样, 即使使用字符类,这仍然是非常有限的,因为我们只能匹配具有固定长度的字符串.
所以,没有关于大括号的信息{} {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}’:) 这个url说没有这样的魔术符号:
卷曲括号仅作为简单文本工作,不再有效. 可以阅读大括号的常用用法,例如here. 解决方法
我们不得不承认Lua正则表达式量词在功能上非常有限.
>他们只是你提到的4个(,–,*和?) 作为“解决方法”,为了使用限制量词和所有其他PCRE正则表达式特权,您可以使用 或者,正如@moteus建议的那样,部分解决方法是“模拟”具有下限的限制量词,只需重复模式以匹配它几次,并将可用的Lua量词应用于最后一个.例如.匹配3个或更多个模式: local np = 'abc_123' local a = np:match('^[a-zA-Z0-9_][a-zA-Z0-9_][a-zA-Z0-9_]+$' ) 见IDEONE demo 要考虑的另一个库而不是PCRE是Lpeg. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |