我正在使用LUA进行字符串操作,并遇到以下问题。
使用它作为我给出的原始数据的一个例子 -
“[0; 1; 36m(网络):你说,”这里发短信。“[0; 37m”
除了删除ANSI代码之外,我想保持字符串完整。
我一直指向使用带有LUA模式匹配的gsub,但我似乎无法使模式正确。我也不确定如何准确引用发送的转义字符。
text:gsub("[\27\[([\d\;]+)m]", "")
or
text:gsub("%x%[[%d+;+]m", "")
如果成功,我想留下的所有内容,使用上面的例子,将是:
(网站):你说,“这里发短信。”
您的字符串示例缺少转义字符,ASCII 27。
这是一种方式:
s = '\x1b[0;1;36m(Web): You say, "Text here."\x1b[0;37m'
s = s:gsub('\x1b%[%d+;%d+;%d+;%d+;%d+m','')
:gsub('\x1b%[%d+;%d+;%d+;%d+m','')
:gsub('\x1b%[%d+;%d+;%d+m','')
:gsub('\x1b%[%d+;%d+m','')
:gsub('\x1b%[%d+m','')
print(s)