Lua 中的多行模式是什么?

我想匹配多行

/add val1::val2

并且使用此模式进行匹配

^/add +(.+)::+(.+)$

但是多行不起作用,例如:

/add line1
line2
::
linexx
lineYY

测试了这个模式但不起作用

^/add ([%w%s]*)::([%w%s]*)
点赞
用户1009479
用户1009479

. 匹配任何字符,包括\n。由于您不想匹配多行字符串,因此需要显式排除\n,即使用[^\n]替换.

^/add +([^\n]+)::+([^\n]+)$

测试:

local str1 = '/add val1::val2'
local str2 = [[/add line1
line2
::
linexx
lineYY]]

local pattern = '^/add +([^\n]+)::+([^\n]+)$'

print(str1:match(pattern))
print(str2:match(pattern))
2016-04-13 06:25:33