Lua-仅匹配{}中大括号内的单词,并用子字符串替换或附加这些单词

问题描述 投票:0回答:2

我有各种形式类似于的字符串:

这是sentence外括号{sentence {},上面有一些单词。 {这是一个句子在大括号内加上一些单词。} {这是第二个句子在括号内。}也许在这里还有另外一些sentence。]]

[使用Lua,我只想匹配字符串中位于“ {}”括号外的特定单词。例如,我可能想在括号内匹配单词“ sentence

”,而不要在括号内匹配单词“ sentence”。我只想匹配单词的粗体而不是斜体。

如何做?


编辑:如果我想附加或替换匹配的单词,同时保持括号内的子字符串完整,该怎么办?

示例:在句子后附加“单词”:

这是sentenceword

用大括号{sentence {}加上一些单词。 {这是一个大括号内带有一些单词的句子。} {这是第二句话在括号内。}也许在这里还有另外一些sentenceword。]]的单词。

我有各种各样的字符串,其形式类似于:这是在大括号{句子{}之外的带有某些单词的句子。 {这是大括号内带有一些单词的句子。} {这是第二个句子,位于...

string lua
2个回答
4
投票

最简单的方法是在一个临时变量中将所有括号替换为零长度的字符串,然后您可以使用该字符串搜索所需的内容。

您可以使用Lua的模式匹配和以下简单的gsub代码轻松完成此操作:


2
投票
local function weird_match(word, str)
   return str:gsub("%b{}", ''):match(word)
end
© www.soinside.com 2019 - 2024. All rights reserved.