阅读模式:

lua切割字符串成table数组

查看:8266  回复:0  类型:  来源:php自学网  标签 lua

        lua切割字符串成table数组函数。使用gmatch正则进行匹配字符串所有符合的字符,并把匹配的字符放入table中。

一、split

function _M.split(self, str, delimiter)
    if str == nil or str == '' or delimiter == nil then
        return nil 
    end 
    local delimiter1 = delimiter
    if delimiter == '.' or delimiter == '+' or delimiter == '*' or delimiter == '-' or delimiter == '?' or delimiter == '%' then
        delimiter1 = "%"..delimiter --转义特殊字符的间隔符
    end 
    local result = {}
    for match in (str..delimiter):gmatch("(.-)"..delimiter1) do
        table.insert(result, match)
    end 
    return result
end
_M:split(str, delimiter)

二、string.gmatch (s, pattern)

        返回一个迭代器函数,每一次调用这个函数,返回一个在字符串s找到的下一个符合pattern描述的子串。如果参数pattern描述的字符串没有找到,迭代函数返回nil。

匹配的模式: 

.(点): 与任何字符配对 

%a: 与任何字母配对 

%c: 与任何控制符配对(例如\n) 

%d: 与任何数字配对 

%l: 与任何小写字母配对 

%p: 与任何标点(punctuation)配对 

%s: 与空白字符配对 

%u: 与任何大写字母配对 

%w: 与任何字母/数字配对 

%x: 与任何十六进制数配对 

%z: 与任何代表0的字符配对 

%x:(此处x是非字母非数字字符)与字符x配对. 主要用来处理表达式中有功能的字符 (^$()%.[]*+-?) 的配对问题, 例如 %% 与 % 配对 

[数个字符类]: 与任何[]中包含的字符类配对. 例如[%w_]与任何字母/数字, 或下划线符号(_)配对 当上述的字符类用大写书写时, 表示与非此字符类的任何字符配对. 例如, %S表示与任何非空白字符配对,例如,'%A'非字母的字符 

'%'':用作特殊字符的转义字符,因此  '%.'  匹配点;'%%'  匹配字符  '%' 。转义字符  '%'  不仅可以用来转义特殊字符,还可以用于所有的非字母的字符。当对一个字符有疑问的时候,为安全起见请使用转义字符转义他

+ :匹配前一字符1次或多次 

* :匹配前一字符0次或多次 

- :匹配前一字符0次或多次 

? :匹配前一字符0次或1次

分享到:
0 0

*有问题之处烦请在评论中指出非常感谢!
不是我想要的内容,继续搜索:

扫描二维码手机查看

发布评论:


登录:
  表情:
评论话题
推荐阅读:
mysql中文分词全文搜索索引讯搜的安装   阅读:8802面试的时候回去等通知,等电话的真实意思   阅读:27773最简单的Banner轮播左右切换效果代码及实现思路(附带源码)   阅读:35581简单的DOS攻击之死亡之ping详解   阅读:75977十张GIF让你弄懂递归等概念   阅读:7630霍金24岁博士毕业论文在线预览   阅读:7007centos 7 设置 nginx-1.11.10 开机启动   阅读:9534解决 nginx 413 request entity too large   阅读:5857php打印九九加法表   阅读:13397centos 7.2 添加php7 的 php-fpm 开机启动   阅读:27754给网站添加一键qq登录的功能   阅读:9212linux rarcrack破解rar、zip和7z压缩包简单密码的工具   阅读:20370mysql共享锁和排他锁详解   阅读:9163linux rarcrack破解rar、zip和7z压缩包简单密码的工具   阅读:20370把php session 会话保存到redis   阅读:8982web项目高并发量网站解决方案   阅读:5812浅谈javascript的函数节流   阅读:6018PHP 鸟哥:我也曾经是“不适合”编程的人   阅读:17319最简单的Banner轮播左右切换效果代码及实现思路(附带源码)   阅读:35581linux教程,鸟哥私房菜(pdf全集)   阅读:12171知乎百万赞作者告诉你:年薪百万的人都在靠什么赚钱   阅读:8437纯干货,程序员面试的超实用技巧   阅读:5513纯干货,程序员面试的超实用技巧   阅读:5513linux命令中执行php脚本   阅读:10064移动端自适应rem原理   阅读:11048Nginx 配置文件详解   阅读:6669linux top命令详解   阅读:11438linux top命令详解   阅读:11438linux教程,鸟哥私房菜(pdf全集)   阅读:12171shell脚本统计当前服务器并发连接数   阅读:9434centos 7 忘记root密码   阅读:6365shell脚本统计当前服务器并发连接数   阅读:9434mysql的四种索引类型   阅读:25504shell脚本批量删除几天前的文件   阅读:12641mysql数据库性能的基本优化   阅读:5594centos 7 安装 mysql-5.7   阅读:9774centos 7搭建zabbix3.4   阅读:8042面试的时候和你谈理想,是理想or入坑?   阅读:13108给网站添加一键新浪微博登录的功能   阅读:7791centos 7 开启网络   阅读:8897centos 7 安装 samba 服务   阅读:8335最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:12736用php从1乘到100的值   阅读:7728php 使用 smtp.php 类在线发送邮件功能   阅读:7175php删除一个文件夹内的所有文件夹和文件   阅读:6294php冒泡排序法   阅读:16602HTTP 1.1 协议详解   阅读:16884php翻转字符串   阅读:4871HTTP 1.1 协议详解   阅读:16884纯干货,程序员面试的超实用技巧   阅读:5513