【发布时间】:2019-11-22 09:00:49
【问题描述】:
我有各种形式的字符串,类似于:
这是一个sentence大括号{sentence{},带有一些单词。 {这是一个 sentence 括号内带有一些单词。}{这是第二个 sentence 大括号内。} 此处可能需要多说几句来代表另一个句子。
使用 Lua,我只想匹配字符串中“{}”大括号之外的特定单词。例如,我可能想匹配大括号外的单词“sentence”,而不是大括号内出现的“sentence”。我只想匹配单词的粗体出现而不是斜体。
怎么做?
编辑:如果我想追加或替换匹配的单词,同时保持大括号内的子字符串完整,该怎么办?
示例:将“单词”附加到句子:
这是一个sentenceword,在大括号{sentence{} 外带有一些单词。 {这是一个 大括号内的句子和一些单词。}{这是第二句话 在大括号内。} 此处可能需要更多的词来表示另一个 sentenceword。
【问题讨论】:
-
有什么自己的想法吗?尝试?
-
如果你的牙套是平衡的,那么试试
your_text = (your_text.."{}"):gsub("(.-)(%b{})", function(a, b) return a:gsub("sentence", "replacement")..b end):sub(1,-3) -
@EgorSkriptunoff 为什么你总是在 cmets 中写下你的答案? ;)
-
@DarkWiiPlayer - IMO,简洁的答案是一个很好的答案。但 SO 鼓励长答案。所以,我写 cmets :-)