Lua模式文本拆分

use*_*506 2 lua

我再次需要Lua模式的帮助.让我们说我有以下字符串:

<c> block- 应该匹配cblock

<category>material- 应该匹配categorymaterial

decorative- 如果没有<>阻止,那么它应该返回它给出的(或无).

我对空间不感兴趣,所以内置装饰会很好.

我设法创造(<%a>)([^>]+),但它返回,<c>block在第一个例子,遗憾的是,不是我想要的.

Wik*_*żew 5

(<%a>)模式中的零件捕获尖括号,因此它们落在捕获的值中.本%a场比赛只有一个字母字符,所以你需要添加+量词以后它来搭配1个或多个字母字符.

使用

<(%a+)>%s*([^>]+)
Run Code Online (Sandbox Code Playgroud)

%s*将匹配0+空格字符,他们会在外面集团2.

一个Lua的演示:

local function splitString(text)
    return string.match(text, "<(%a+)>%s*([^>]+)")
end

print(splitString("<c> block"))           -- c  block
print(splitString("<category>material"))  -- category   material
print(splitString("decorative"))          -- nil
Run Code Online (Sandbox Code Playgroud)