美文网首页
Lua语法 模式

Lua语法 模式

作者: 白小白152 | 来源:发表于2020-01-07 19:14 被阅读0次

    1:Lua语言中模式使用百分号作为转义符(类似于正则表达式)

    %@:匹配所有的字母
    %.:匹配一个点
    %c:匹配控制字符
    %d:匹配数字
    %g:匹配除空格外的可打印字符
    %l:匹配小写字母
    %p:匹配标点符号
    %s:匹配空白字符
    %u:匹配大写字母
    %w:匹配字母和数字
    %x:匹配16进制数字
    

    字符分类:模式中能够与一个特定集合中的任意字符相匹配的一项
    “%d%d/%d%d/%d%d%d%d”来匹配dd/mm/yyyy格式的日期

    2:可以使用字符集来创建自定义的字符分类,只需要在方括号内将单个字符和字符分类的组合起来即可,

    [%w_]:匹配所有以下划线结尾的字母和数字
    [01]:匹配二进制数字
    [%[%]]:匹配方括号
    

    3:在字符集前加一个补字符^就可以的带这个字符集对应的补集
    模式[^0-7]代表所有八进制数字以外的字符
    模式[^\n]代表除换行符以外的其他字符

    修饰符:
    + 重复一次或多次
    * 重复零次或多次
    - 重复零次或多次(最小匹配)
    ?可选(出现零次或一次)
    

    修饰符 + 匹配原始字符分类中的一个或多个字符,它总是获取与模式相匹配的最长序列,例如模式“%a+”代表一个或多个字母(单词)

    local str = "one,and two;and three"
    print("替换字符串后为:",string.gsub(str, "%a+","word"))
    local str1 = "the number 1298 is even"
    print("匹配后的字符串为:",string.match(str1,"%d+"))
    输出结果为:
    [LUA-print] 替换字符串后为:    word , word word;word word  5
    [LUA-print] 匹配后的字符串为:   1298
    

    修饰符 * 类似于修饰符 + ,但是它还接受对应字符分类出现零次的情况

    修饰符 — 和修饰符*类似,也是用于匹配字符分类的零次或多次出现,不过跟修饰符 * 总是能匹配的最长序列不同,修饰符 - 只会匹配最短序列

    相关文章

      网友评论

          本文标题:Lua语法 模式

          本文链接:https://www.haomeiwen.com/subject/ayjdactx.html