话不多说,这部分是作为之后某一篇文章的前置而出现的。
Lua
的 Pattern
和正则表达式有相似之处,但也有所不同。本文力图简短地介绍 Pattern
和可以用到 Pattern
的函数,为之后的使用打好基础。
回顾正则表达式
简单的正则表达式语法如下:
abc
:表示匹配abc
a*
:表示匹配零个或多个a
a+
:表示匹配一个或多个a
[abc]
:表示匹配a
、b
、c
任一a{10,}
:表示匹配 10~ 个a
a?
:表示可选匹配a
\?
:表示匹配?
,此处使用\
转义^$
:表示开始和结束
对应的 Pattern
Lua 的 Pattern 是弱化版的正则表达式,但其也可以满足大部分需求了。
abc
:表示匹配abc
a*
:贪婪匹配零个或多个a
a-
:非贪婪匹配零个或多个a
a+
:表示匹配一个或多个a
[abc]
:表示匹配a
、b
、c
任一a?
:表示可选匹配a
%?
:表示匹配?
,此处使用%
转义^$
:表示开始和结束
此外,还有一些额外的功能:
%n
:匹配第n
个捕获组,n
为1-9
%bxy
:匹配x
y
平衡组,常用于括号平衡匹配