我想要匹配多行
/add val1::val2
并通过此模式工作
^/add +(.+)::+(.+)$
但不能多线工作 例如:
/add line1
line2
::
linexx
lineYY
测试了这种模式但不起作用
^/add ([%w%s]*)::([%w%s]*)
答案 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))