lua自动化脚本关于文本读写和特殊不可见字符转换的处理

本文介绍Lua脚本中处理文本的方法,包括去除空白字符、转换特殊字符及通过adb命令输出文本等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lua自动化脚本关于文本读写和特殊不可见字符转换的处理

因为lua在读写文本中可能还会碰到一些比较变态的不可见字符,%s," "这些转换不了,所以需要做特殊的处理。 参考菜鸟教程的字符串操作

  1. 将文本头部部分的空白和其他不可见字符全部去除:
	function trimStr (s) 
	    return string.gsub(s, "^%W+", "")
	    -- %W代表所有非标点和数字
	end
复制代码
  1. 将文本中的不可见字符全部用空白代替,以与原样式长度保持一致,结合3使用:
-- 举例,adb命令输出文字
	function writeInput()
		 local str="            qwerty...      "  
	   str=string.gsub(str, "[^%w%p%s]", " ")
	    str="\""..str.."\""
	    os.execute("input text "..str)
	end

复制代码
  1. 将文本中的中的空白保留,并在adb shell中进行输出 因为在adb中的input text并不允许直接输入空白,此时要么调用os.execute("input keyevent KEYCODE_SPACE")键盘事件,但是这样对于不确定和复杂的文本内容不方便,所以考虑对os.execute("input text "..str)中的str做转义处理,使其中的空白字符转成字符串,如下:
	function blankStr(s) 
	    return "\""..s.."\""
	end
--

--举例,adb命令输出带空白的文字,可以结合1使用
	function writeInput()
		 local str="I am looking for  your...      "  
	    str=blankStr(str)
	    os.execute("input text "..str)
	end
复制代码
  1. 终极版: 读取txt文件,结合2,3用adb命令将文本中的内容与原格式一致进行输出: 可以参考菜鸟教程的I/0基本操作
	-- 将文本中的不可见字符都转换成空格,并且转换成字符串,以便input text进行输出
	function formatStr(s)
	  local str=string.gsub(s, "[^%w%p%s]", " ")
	    str="\""..str.."\n\""
	    return str
	end

	function readFile(text)
		-- text是文本的路径
		local lines=io.lines(text)
	    for line in lines
	    do
	        local str=formatStr(line )
	        os.execute("input text "..str)
	   end
    end
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值