Lua中的多线模式是什么?

时间:2016-04-13 05:16:48

标签: lua lua-patterns

我想要匹配多行

/add val1::val2

并通过此模式工作

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

但不能多线工作 例如:

/add line1
line2
::
linexx
lineYY

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

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

1 个答案:

答案 0 :(得分:3)

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