Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Lua正则表达式(string函数)

下面的表列出了Lua支持的所有字符类:
 .          任意字符
%a       字母
%c       控制字符
%d       数字
%l          小写字母
%p       标点字符
%s       空白符
%u        大写字母
%w        字母和数字
%x        十六进制数字%z       代表0的字符在模式匹配中有一些特殊字符( ) . % + - * ? [ ^ $
%用作特殊字符的转义字符,因此 "%." 匹配字符点".", "%%"匹配字符 "%" .转义字符"%"不仅可以用来转义特殊字符,还可以用于所有的非字母的字符。当对一个字符有疑问的时候,为安全起见请使用转义字符转义他。+          匹配前一字符1次或多次
*         匹配前一字符0次或多次
-         匹配前一字符0次或多次
?         匹配前一字符0次或1次
举例:(1)把字符串中的非字母替换成数字"."print(string.gsub("Hello, up-down!", "%A", "."))
    --> hello..up.down.   4(数字4不是字符串结果的一部分,他是gsub返回的第二个结果,代表发生替换的次数。其他的关于打印gsub结果的例子中将会忽略这个数值)(2)"%d+"匹配一个或多个数字 (整数):i, j = string.find("the number 1298 is even", "%d+")
    --> print(i,j) --> 12 15(3)匹配日期格式s = "Today is 30/05/1999, firm"print(string.sub(s, string.find(s, ""%d%d/%d%d/%d%d%d%d"")) --> 30/05/1999(4)截取想要的文件名(文件名的中间部分可能是jpg|png|jpeg|gif)local str1 = "wKgAgk1_M36eGCazAAHAC_MLulA790.jpg_200x200_2.jpg"
local str2 = "wKgAgk1_M36eGCazAAHAC_MLulA790.png_200x200_2.jpg"_,index1 = string.find(str1,"%.%a%a%a_")
_,index2 = string.find(str2,"%.%a%a%a_")
print(string.sub(str1,1,index1-1))  -->  wKgAgk1_M36eGCazAAHAC_MLulA790.jpg(匹配的是.jpg_或.png_)
print(string.sub(str2,1,index2-1))  -->  wKgAgk1_M36eGCazAAHAC_MLulA790.png(匹配的是.jpg_或.png_)
print(string.gsub(str2,"_%d+x%d+_%d%.%a+","")) -->  wKgAgk1_M36eGCazAAHAC_MLulA790.png(匹配的是_200x200_2.jpg)其他扩展:print("=================== "..os.date().." =======================")
--查看CPU耗时:local x3 = os.clock()
local s = 0
for i = 1, 100000 do
path,_ = string.gsub(str2,"_%d+x%d+_%d%.%a+","")
end
local x4 = os.clock()
print(string.format("耗时: %.2f ", x4 - x3))Lua 语言 15 分钟快速入门 http://www.linuxidc.com/Linux/2013-06/86582.htmLua程序设计(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htmLua程序设计(第二版)阅读笔记 http://www.linuxidc.com/Linux/2013-03/81834.htmNetBSD 将支持用 Lua 脚本开发内核组件 http://www.linuxidc.com/Linux/2013-02/79527.htmCentOS 编译安装 Lua LuaSocket http://www.linuxidc.com/Linux/2011-08/41105.htmLua 的详细介绍:请点这里
Lua 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-04/116142.htm