我正在使用LUA进行字符串操作,遇到以下问题。
以此作为原始数据的示例-
“ [0; 1; 36m(Web):您说,“此处输入文字。” [0; 37m”
除了删除ANSI代码外,我希望保留字符串的完整性。
我已经指出要在LUA模式匹配中使用gsub,但是我似乎无法正确获得模式。我也不确定如何准确引用发送的转义字符。
text:gsub("[\27\[([\d\;]+)m]", "")
or
text:gsub("%x%[[%d+;+]m", "")
如果成功,使用上面的示例,我想要保留的全部就是:
(网络):您说,“在此处输入文字。”
答案 0 :(得分:1)
您的字符串示例缺少转义字符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)