zoukankan      html  css  js  c++  java
  • LuaJit转义的问题

    之前在项目中,处理类似!30转为表现的字符串时,有人写了这样的一段代码“![1-2][0-9]”,当换成luajit时启动报错了,出错原因在于转义字符使用不对。在很多语言中,正则的转义字符是“”,但在lua中却不是,至少标准的不是。

    引号,使用“”进行转义,跟字符串定义类似

    local s = “"Hello World!””

    => 输出 “Hello World!”  - 带双引号

     

    其它字符如特殊的字符(被称为魔法字符):( ) . % + – * ? [ ] ^ $,想匹配这些字符时需要加上%,比如想匹配%则需要使用%%,%( 匹配左括号 %) 匹配右括号,如果%用于字母和数字的字符,意义就变了,比如%d、%a、%D、%U、%1。

    “% + 大写字母”是所有对应小写字母的补集

    . 所有字符
    %a 字母
    %c 控制字符
    %d 数字
    %l 小写字母
    %p 标点符号
    %s 空白字符
    %u 大写字符
    %w 字母和数字字符
    %x 十六进制数字
    %z 内部表示为0的字符

     

    + 重复1次或多次
    * 重复0次或多次
    - 也是重复0次或多次
    ? 出现0或1次

     

    在lua中还是较为方便的处理嵌套的,因为它有%b - 匹配对称字符。

    比如下面这个例子

    local x = string.gsub(“xddddyxxxxxyxxxy”, “%bxy”, “a”)

    print(x)

    =>axxxxaxxa

     

    不过要注意的是string.fromat中的格式跟C语言中的printf一样,与上面表格列出的捕获字符不同

    不过也有特例和异常,可以参考这里:http://pgl.yoyo.org/luai/i/string.format

  • 相关阅读:
    Java字符串(String类)
    Java异常处理
    Scanner使用方法
    OOP之重载
    构造函数和析构函数
    类、对象、方法
    函数
    数组
    ahk之路:利用ahk在window7下实现窗口置顶
    指针的问题
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/3936097.html
Copyright © 2011-2022 走看看