aardio-从零开始学aardio笔记:模式匹配
前言
开始尝试着解决一些实际问题,在学的过程中,有些知识点和以前理解的不一样,或者以前理解的正则规则就错了。刚好要用到提取网页数据,把aardio的模式匹配入门过了一遍。
要在实践中去掌握知识。
知识是从来不能脱离实践的,例如贪婪匹配,逻辑匹配,你为什么不用学?你碰到了实际的需要,你会想:要是这里能……多好啊? 你一查,还真有呢,你马上就懂了,几乎就是闪电的时间你就明白了,这就是实践中碰撞出来的知识火花。
– 《模式匹配快速入门》
修饰符
-
.
:任意字符/字节( 与正则表达式相同 ) -
:
:任意双字节( 中文字符,正则表达式无此语法 ) -
*,+
:星号表示出现0到任意次,加号则表示出现1次到任意次 -
^,&
:字符串开始和结束 -
[]
:匹配指定字符中的某个 -
()
:圆括号设定模式匹配返回的结果,每增加一对圆括号,匹配函数就多一个返回值 「新知识√」 -
<>
:字符串匹配,匹配尖括号中的整串字符 -
{}
:大括号指定模式重复匹配的次数 -
%
:对称匹配
其他预定义字符
-
\n
:换行符 -
\r
回车符 -
\w
字母和数字 -
\s
空白符 -
\d
数字 -
\f
换页符\x0c
-
\v
匹配一个垂直制表符。等价于\x0b
-
\t
制表符
以上部分与正则表达式兼容,以下是 aardio 模式匹配特有:
-
\a
字母 -
\c
控制字符 -
\i
是否ASCII字符( 字节码< 0x80
) -
\l
小写字母 -
\p
标点字符 -
\u
大写字母 -
\x
十六进制数字(正则表达式里用于16进制字符前缀,即\xhh
) -
\z
表示\0
大写表示反义( 与正则表达式相同 ),例如\D表示不是数字的字符。
修饰符示例
指定一个模式应当怎样去匹配。修饰符有很多种,而最常用的就是用来指定匹配次数。
p{2,3}
表示 a
出现 2
到 3
次
io.open() |
p+
表示 a
出现 1
次到任意次数,等价于 p{1,}
io.open() |
p*
表示 a
出现 0
次到任意次数,等价于 p{0,}
io.open() |
匹配身份证的例子
匹配身份证示例及更完整的教程,请参考aardio官方教程: 模式匹配快速入门
结束语
可以熟练使用模式匹配中的括号,表示你精通了模式匹配。
[ab] 中括号匹配指定字符中的一个。 |
《模式匹配语法参考》
模式表达式语法
《模式匹配函数说明》
模式匹配函数
多结合实际案例练习,多到论坛跟大家交流。
然后你也尝试象我这样写教程,不要怕写的不好。
把自已的学习心得写出来。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 叶落花开的博客!
评论