Lua 中的多行模式是什么?

What is multi line pattern in Lua?

我要匹配多行

/add val1::val2

并通过此模式工作

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

但不能在多行中工作 例如:

/add line1
line2
::
linexx
lineYY

测试了这个模式但没有用

^/add ([%w%s]*)::([%w%s]*)

. 匹配任何字符,包括 \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))