我有一个字符串
“\ X00 \ X00 \ X007 {\” 请求\ “:\” Cameralogout \ “\ ”响应\“:\” 无效 请求\ “}”
我想将字符串清理成
"{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
如何编写一般情况来过滤内容以\x
开头?
答案 0 :(得分:1)
如果\x##
是真正的文字,请使用string.gsub(/\\x\d+/, "")
:
> t = "\\x00\\x00\\x007{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
=> "\\x00\\x00\\x007{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}
string.gsub(/\\x[\da-f]+/i, "")
=> "{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
另一方面, string.sub(/^[^{]*/, "")
会删除第一个{
之前的所有内容:
> t = "\x00\x00\x007{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
=> "\u0000\u0000\u00007{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
> t.sub(/^[^{]*/, "")
=> "{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
要仅删除\x00
和\x07
(非文字),请使用string.gsub(/\x00|\x07/, "")
或string.gsub(/[\x00\x07]/, "")
:
> t = "\x00\x00\x07{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
=> "\u0000\u0000\a{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"
> t.gsub(/\x00|\x07/, "")
=> "{\"request\":\"Cameralogout\",\"response\":\"Invalid request\"}"