我再次需要Lua模式的幫助。可以說我有以下字符串:Lua模式文本分割
<c> block
- 應匹配c
和block
<category>material
- 應匹配category
和material
decorative
- 如果沒有<>
塊,那麼它應該回到它被賦予了什麼(或零)。
我對空間不感興趣,所以建在修剪將是很好的。
我設法創建了(<%a>)([^>]+)
,但它在第一個示例中返回<c>
和block
,很可惜這不是我所追求的。
我再次需要Lua模式的幫助。可以說我有以下字符串:Lua模式文本分割
<c> block
- 應匹配c
和block
<category>material
- 應匹配category
和material
decorative
- 如果沒有<>
塊,那麼它應該回到它被賦予了什麼(或零)。
我對空間不感興趣,所以建在修剪將是很好的。
我設法創建了(<%a>)([^>]+)
,但它在第一個示例中返回<c>
和block
,很可惜這不是我所追求的。
模式中的(<%a>)
部分捕獲尖括號,因此它們落在捕獲的值中。 %a
僅匹配一個字母字符,因此您需要在其後添加+
量詞以匹配1個或更多字母字符。
使用
<(%a+)>%s*([^>]+)
的%s*
將匹配0+空格字符,他們會在外面集團2
一個Lua demo:
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
嘗試'<(%a+)>%S *([^ >] +)' –