您当前的位置:首页 > lua

Lua正则表达式(string函数)

下面的表列出了Lua支持的所有字符类: 5VHlinux系统宝典
  .          任意字符5VHlinux系统宝典
%a        字母5VHlinux系统宝典
%c        控制字符5VHlinux系统宝典
%d        数字5VHlinux系统宝典
%l          小写字母5VHlinux系统宝典
%p        标点字符5VHlinux系统宝典
%s        空白符5VHlinux系统宝典
%u        大写字母5VHlinux系统宝典
%w        字母和数字5VHlinux系统宝典
%x        十六进制数字5VHlinux系统宝典

%z        代表0的字符5VHlinux系统宝典

在模式匹配中有一些特殊字符5VHlinux系统宝典

( ) . % + - * ? [ ^ $5VHlinux系统宝典

5VHlinux系统宝典
%用作特殊字符的转义字符,因此 '%.' 匹配字符点'.', '%%'匹配字符 '%' .5VHlinux系统宝典

转义字符'%'不仅可以用来转义特殊字符,还可以用于所有的非字母的字符。当对一个字符有疑问的时候,为安全起见请使用转义字符转义他。5VHlinux系统宝典

+          匹配前一字符1次或多次5VHlinux系统宝典
*          匹配前一字符0次或多次5VHlinux系统宝典
-          匹配前一字符0次或多次5VHlinux系统宝典
?          匹配前一字符0次或1次5VHlinux系统宝典

5VHlinux系统宝典
举例:5VHlinux系统宝典

(1)把字符串中的非字母替换成数字'.'5VHlinux系统宝典

print(string.gsub("Hello, up-down!", "%A", "."))5VHlinux系统宝典
    --> hello..up.down.    45VHlinux系统宝典

(数字4不是字符串结果的一部分,他是gsub返回的第二个结果,代表发生替换的次数。其他的关于打印gsub结果的例子中将会忽略这个数值)5VHlinux系统宝典

(2)'%d+'匹配一个或多个数字 (整数):5VHlinux系统宝典

i, j = string.find("the number 1298 is even", "%d+")5VHlinux系统宝典
    --> print(i,j) --> 12  155VHlinux系统宝典

(3)匹配日期格式5VHlinux系统宝典

s = "Today is 30/05/1999, firm"5VHlinux系统宝典

print(string.sub(s, string.find(s, ""%d%d/%d%d/%d%d%d%d"")) --> 30/05/19995VHlinux系统宝典

(4)截取想要的文件名(文件名的中间部分可能是jpg|png|jpeg|gif)5VHlinux系统宝典

local str1 = "wKgAgk1_M36eGCazAAHAC_MLulA790.jpg_200x200_2.jpg"5VHlinux系统宝典
local str2 = "wKgAgk1_M36eGCazAAHAC_MLulA790.png_200x200_2.jpg"5VHlinux系统宝典

_,index1 = string.find(str1,"%.%a%a%a_")5VHlinux系统宝典
_,index2 = string.find(str2,"%.%a%a%a_")5VHlinux系统宝典
print(string.sub(str1,1,index1-1))  5VHlinux系统宝典

-->  wKgAgk1_M36eGCazAAHAC_MLulA790.jpg(匹配的是.jpg_或.png_)5VHlinux系统宝典
print(string.sub(str2,1,index2-1))  5VHlinux系统宝典

-->  wKgAgk1_M36eGCazAAHAC_MLulA790.png(匹配的是.jpg_或.png_)5VHlinux系统宝典
print(string.gsub(str2,"_%d+x%d+_%d%.%a+",""))5VHlinux系统宝典

 -->  wKgAgk1_M36eGCazAAHAC_MLulA790.png(匹配的是_200x200_2.jpg)5VHlinux系统宝典

其他扩展:5VHlinux系统宝典

print("=================== "..os.date().." =======================")5VHlinux系统宝典

5VHlinux系统宝典
--查看CPU耗时:5VHlinux系统宝典

local x3 = os.clock()5VHlinux系统宝典
local s = 05VHlinux系统宝典
for i = 1, 100000 do5VHlinux系统宝典
path,_ = string.gsub(str2,"_%d+x%d+_%d%.%a+","")5VHlinux系统宝典
end5VHlinux系统宝典
local x4 = os.clock()5VHlinux系统宝典
print(string.format("耗时: %.2f/n", x4 - x3))5VHlinux系统宝典

Lua 语言 15 分钟快速入门 5VHlinux系统宝典

Lua程序设计(第2版)中文 PDF 5VHlinux系统宝典

Lua程序设计(第二版)阅读笔记 5VHlinux系统宝典

NetBSD 将支持用 Lua 脚本开发内核组件 5VHlinux系统宝典

编译安装 Lua LuaSocket 5VHlinux系统宝典

Lua 的详细介绍5VHlinux系统宝典
Lua 的下载地址5VHlinux系统宝典



沪ICP备10206494号-4