1. Lua实现模式匹配,没有使用POSIX正则表达式和Perl正则表达式。
一个典型的POSIX正则实现需要超过4000多行代码,比所有Lua语言标准库总大小的一半还大。
Lua实现模式匹配代码不到600行。不如POSIX强大,但够用。
字符串标准库基于模式4个函数:find(返回出现模式的位置),match(返回和模式匹配的字符串,以及位置),gmatch(返回出现模式的迭代器),gsub(出现模式的地方替换字符串,以及替换次数)。
2. 字符分类:
除此之外,大写形式代表其补集。比如,%A代表任意非字母的字符。
除此之外,自定义字符分类。使用方括号。比如,[0-9] 等价于 %d。 备注:短横线的使用,代表某段字符范围。
自定义补集,使用^。比如,[^n]代表除换行外其他字符。
注意:使用字符分类,最好括起来。
3. 修饰符
举例:1. * 使用例子,为了匹配像 () 或 () 这样的空 括号对,就可以使用模式 %(%s*%)
2. 跟 修饰符*总是匹配能匹配的最长序列不同。修饰符 – 只会匹配最短序列,比如找到第一个字母。
/%*.*%*/代表匹配第一个/*和最后一个/* (类似正则的贪婪匹配)。
/%*.-%*/代表匹配到找到第一个*/
3. ?举例,比如匹配 +1,-20,78 这三个数值。[+-]?%d+
4. lua中的修饰符只作用于一个字符模式。
4. 其他
1. ^和$代表从目标字符串的开头或至结尾匹配。只有位于模式的开头和结尾时才有特殊含义。比如查找以什么开头或结尾等 ^[+-]%d$。
2. %b 匹配成对的字符串。比如%xy表服务器托管网示以x开始y结尾
3. %f[char-set] 前置模式,代表只有在后一个字符位于 char-set 内而前一个字符不在时匹配一个空字符串。举例:
s =”the anthem is the theme”
Print((string.gsub(s ,”%f[%w]the%f[%W]”,” one ”)))
--> one anthem is one theme 注意两个one,第一个字符前当成空字符
1.模式’%f[%w]’ 匹配位于一个非字母或数字的字符和一个字母或数字的字符之间的前置
2.模式’%f[%W]’则匹配一个字母或数字的字符和一个非字母或数字的字符之间的前置
3.指定的模式会匹配完整的单词the。
4.目标字符串的前后各有一个空字符(ASCII编码 )。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://w服务器托管网ww.fwqtg.net
简介: 欢迎来到本篇文章!今天我们将讨论一个新的自然语言处理任务——英文短文识别。具体而言,即通过分析输入的英文文本来判断其是比较消极的还是比较积极的。 展示: 1、项目界面 如下所示是项目启动后用户使用使用界面 2、布局介绍 首先可以看到用户使用界面上存在这…