Lua正则表达式

正则表达式作为一种通用的算式,大量用于文本处理逻辑中,其主要好处是速度能够达到极致,而且代码量通常会非常少,本篇主要介绍lua中的正则使用,由于这样的文章网上随处都可以搜到,而且不乏整理的不错的,这里就不想再重新做这件事情。
正则表达式主要处理匹配问题,即通过给定语义通配符串,返回匹配成功的字符串列表。 在匹配的基础上,正则引擎往往提供了字符串的查找、替换、分割等功能,lua支持查找与替换,但不支持分割,分割函数可以在已有接口上进行扩展,附录中引用了lua社区的实现代码。 本篇单纯的简要介绍lua的匹配问题。 Lua正则中的特殊字符(元字符)包括如下几种:( ) . % + - * ?[ ] ^ $ 转义字符(元字符%):’%’ 用作特殊字符的转义字符,’%.’ 匹配点;’%%’ 匹配字符 ‘%’,’%’与特定字母结合有特定含义(通配符),如下:%a: 与任何字母配对%c: 与任何控制符配对(例如\n)%d: 与任何数字配对%l: 与任何小写字母配对%p: 与任何标点(punctuation)配对%s: 与空白字符配对%u: 与任何大写字母配对%w: 与任何字母/数字配对%x: 与任何十六进制数配对%z: 与任何代表0的字符配对 对于上面的%x(其中x代表a,c,d,…,z),lua正则支持其大写形式,大写形式代表非%x,即有%X = ^%x,比如%A表示与任意非字母配对。 其他通配符(元字符.):.(点): 与任何字符配对 字符集(元字符[]):出了上面提到的通配符,我们还可以自定义字符集,如[%a%d]就是与字母和数字配对,我们还可以使用’-‘符号来指定一个范围,如[0-7]表示[01234567],[a-z]表示小写字母,通过字符集,我们可以定义其他复杂的通配符。 贪婪与吝啬(元字符+、-、?、)+ 匹配前一字符1次或多次 匹配前一字符0次或多次- 匹配前一字符0次或多次? 匹配前一字符0次或1次 元字符+和*是贪婪的,总是进行最长的匹配,而-则是吝啬的,总是进行最短匹配,注意元字符-可以匹配0次。例子:待匹配的字符串:ab模式串(1):.+此时将匹配整个字符串,贪婪模式下,正则引擎即使发现了第一个匹配,也不会停止,因此效率相对较低。模式串(2):.-此时将依次匹配a、b,最短匹配模式下,一旦正则引擎发现第一个匹配就停止动作,不会继续匹配, 开头与结尾(元字符^、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值