高速掌握Lua 5.3 —— 字符串库 (2)
Q:模式匹配字符串的相关函数?
A:
--[[ string.find(s, pattern [, init [, plain]])
在字符串"s"中查找第一个与匹配模式"pattern"相匹配的子串,
函数返回子串的開始位置和终止位置。假设未找到返回"nil"。
假设在"pattern"中定义了捕获,捕获物也会在之后依次返回。
"init"可指定从字符串"s"的什么位置開始查找,默觉得1。
"plain"指定是否以模式匹配的形式查找子串,假设"plain"为0,
那么将依据"pattern"的字面意思查找子串。默觉得非0值。]]
s = "Hello World! 123 %a+"
print(string.find(s, "l")) --> 3 3
print(string.find(s, "l", 6)) --> 10 10
print(string.find(s, "lll", 6)) --> nil
print(string.find(s, "%a+", 6)) --> 7 11
print(string.find(s, "%a+", 6, 0)) --> 18 20
-- 通过使用第三个參数能够实现查找字符串中全部匹配"pattern"的子串。
local b = 0
local e = 0
while true do
-- 从匹配位置的下一个位置開始继续查找。
b, e = string.find(s, "%a+", e + 1)
if b == nil then break end
io.write(string.format("%s, ", string.sub(s, b, e)))
--> Hello, World, a,
end
print()
--[[ string.gsub(s, pattern, repl [, n])
将字符串"s"中前"n"个与匹配模式"pattern"相匹配的子串替换为"repl",
"n"假设不指定,默认替换全部的匹配。
函数返回被替换后的字符串。以及替换的次数。
1、假设"repl"是一个字符串(当中能够使用捕获物),那么把这个字符串作为替换品。
特例,"%0"代表整个匹配。
2、假设"repl"是一个"table",每次匹配时都会用第一个捕获物作为键去查这张表。
假设"repl"是一个函数,则在每次匹配时都会以全部捕获物作为參数调用这个函数。
3、假设"pattern"中没有设定捕获。则默认捕获整个"pattern"。
4、假设"table"的查询结果或者函数的返回结果是一个字符串或是个数字时,
都将其作为替换品。而结果为"false"或"nil"时不作替换(即保留匹配前的原始串)。]]
print(string.gsub("Lua is cute", "cute", "great"))
--> Lua is great 1
print(string.gsub("all lii", "l", "x"))
--> axx xii 3
print(string.gsub("Lua is great", "perl", "tcl"))
--> Lua is great 0
print(string.gsub("hello world", "(%w+)", "%1 %1"))
--> hello hello world world 2
print(string.gsub("hello world", "%w+", "%0 %0", 1))
--> hello hello world 1
print(string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1"))
--> world hello Lua from 2
print(string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv))
--> home = /home/roberto, user = roberto
高速掌握Lua 5.3 —— 字符串库 (2)的更多相关文章
- Lua字符串库
1. 基础字符串函数: 字符串库中有一些函数非常简单,如: 1). string.len(s) 返回字符串s的长度: 2). string.rep(s,n) 返回字符串s重复n次的结 ...
- Lua字符串库(整理)
Lua字符串库小集 1. 基础字符串函数: 字符串库中有一些函数非常简单,如: 1). string.len(s) 返回字符串s的长度: 2). string.rep(s,n) 返回 ...
- Step By Step(Lua字符串库) (转)
1. 基础字符串函数: 字符串库中有一些函数非常简单,如: 1). string.len(s) 返回字符串s的长度: 2). string.rep(s,n) 返回字符串s重复n次的结 ...
- Lua 中的string库(字符串函数库)总结
(字符串函数库)总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-11-20我要评论 这篇文章主要介绍了Lua中的string库(字符串函数库)总结,本文讲解了string库 ...
- Lua中字符串库中的几个重点函数
[前言] 在<Lua中的一些库(1)>中也说到了,要对string库的模式匹配进行单独的讲解.对于字符串的处理,对于任何语言的学习来说,都是一个难点,而且也是一个必会的知识点.给你一个字符 ...
- Lua中的字符串函数库
字符串库中的一些函数是非常简单的: string.len(s) 返回字符串s的长度:string.rep(s, n) 返回重复n次字符串s的串:你使用string.rep( ...
- Step By Step(Lua字符串库)
Step By Step(Lua字符串库) 1. 基础字符串函数: 字符串库中有一些函数非常简单,如: 1). string.len(s) 返回字符串s的长度: 2). string ...
- Lua中的一些库(1)
[数学库] 数学库(math)由一组标准的数学函数构成.这里主要介绍几个常用的函数,其它的大家可以自行百度解决. 三角函数(sin,cos,tan……)所有的三角函数都使用弧度单位,可以用函数deg( ...
- Lua中的一些库(2)
[前言] 在<Lua中的一些库(1)>这篇文章中,总结了一部分Lua中的库函数,一篇文章肯定是总结不完的,所以,就来一个<Lua中的一些库(2)>.希望大家能忍住.来吧. 操作 ...
随机推荐
- [CortexM0--stm32f0308]discovery开发板
问题描写叙述:stm32提供了很多IC入门级开发板,价格还是蛮廉价的. stm32f0308-discovery就是一款cortex-m0架构的入门级开发板. 例如以下对其进行下简介. IO便 ...
- php数组函数(分类基本数组函数,栈函数,队列)
php数组函数(分类基本数组函数,栈函数,队列函数) 一.总结 1.常用数组函数 函数 描述 array() 创建数组. array_combine() 通过合并两个数组来创建一个新数组. array ...
- Android ProGuard代码混淆技术详解
前言 受<APP研发录>启发,里面讲到一名Android程序员,在工作一段时间后,会感觉到迷茫,想进阶的话接下去是看Android系统源码呢,还是每天继续做应用,毕竟每天都是画UI ...
- 如何把excel同一个单元格内的文字和数字分别提取出来?
平台:excel 2010 目的:把excel同一个单元格内的文字和数字分别提取出来 操作: 假设数据在A1单元格:如果文字在前,B1=left(A1,lenb(A1)-len(A1))可得文字,C1 ...
- Emgucv 图像操作笔记
这里记下一些学习过程中的心得和技巧.我用VS2008,C#的平台进行编写. 1.将图片载入PictureBox的方法: Image<Bgr, byte> img = new Image&l ...
- [RxJS] How To get the results of two HTTP requests made in sequence
switchMap can chain two HTTP requests together, creating one request based on the results of the fir ...
- HTTP网络协议(五)
主动攻击:是指攻击通过直接访问Web应用,把攻击代码传入的攻击模式,该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源,例如:SQL注入攻击和OS命令注入攻击. 被动攻击:是指 ...
- (转)windows 下 Java 及 Python 环境变量设置
转自:http://www.cnblogs.com/zhj5chengfeng/archive/2013/01/01/2841253.html http://www.cnblogs.com/qiyes ...
- jmeter--基本组件介绍
一.JMeter 介绍 Apache JMeter是100%纯Java桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...
- C++胜者树
#include <iostream> #define MAX_VALUE 0x7fffffff using namespace std; //在这里我先反思一下.不知道怎么搞的,这个算法 ...