zoukankan      html  css  js  c++  java
  • Lua模式匹配

    具有特殊意义的字符
    ( ) . % + - * ?[ ^ $

    ( )  捕获 :string.find("name= anna","(%a+)%s*=%s*(%a+)")//除了返回索引外还要返回用(%a+)捕获的两个单词
    .    匹配任意字符
    %     转义字符:%%匹配字符%
    []     匹配中括号内的字符串整体:类 [01] 匹配二进制数字
    ^      补集
    +    匹配前一个字符一次或者多次 
    *    匹配前一个字符0次或者多次
    -    。。
    ?    匹配前一个字符0次或1次

    例子

    %a+ 匹配一个或者多个字母或者是一个单词
    %d+ 匹配一个或者多个数字
     string.gsub("one,and","%a+","zzy")
    %(%s*%)  匹配()之间的0个或者多个空白
    /%*.*%*/  匹配第一个/*和最后一个/*的所有
    /%*.-%*/  匹配第一个/*和第一个*/之间的部分

    .-  匹配所有的字符

    修饰模式
    以^ 开头的模式只匹配目标串的开始部分
    以$ 结尾的模式只匹目标串的结尾部分
    ^[+-]?%d+$ 检查目标穿是否是一个整数
    %b 匹配对称的字符
     %b() 匹配一(开始以)结束的字符串
     %bxy ...
     
    捕获
    想达到command{some text} --><command> some text</command>
    可以这样实现:string.gsub(s,"\(%a+){(.-)}","<%1>%2</%1>")
    string.gsub(s,"^%s*(.-)%s*$","%1")  去除空格

  • 相关阅读:
    storm原理写得比较好的文章
    maven设置jdk版本
    项目中记录log4j记录日志
    eclipse jadeclipse配置
    Maven使用说明
    crond不执行原因分析
    空调遥控器图标含义
    window7开放端sqlserver端口
    servlet仿struts参数注入
    cocos 2dx-js3.5整合anySDK
  • 原文地址:https://www.cnblogs.com/zzy-frisrtblog/p/5939047.html
Copyright © 2011-2022 走看看