io.popen()##
- 原型:io.popen ([prog [, mode]])
- 解释:在额外的进程中启动程序
prog
,并返回用于prog的文件句柄。通俗的来说就是使用这个函数可以调用一个命令(程序),并且返回一个和这个程序相关的文件描述符,一般是这个被调用函数的输出结果,这个文件打开模式由参数mode
确定,有取值"r"
和"w"
两种,分别表示以读、写方式打开,默认是以读的方式。
string.gsub()##
- 原型:string.gsub (s, pattern, repl [,m])
- 解释:这个函数会返回一个替换后的副本,原串中所有的符合参数
pattern
的子串都将被参数repl
所指定的字符串所替换,如果指定了参数m
,那么只替换查找过程的前m
个匹配的子串,参数repl
可以是一个字符串、表、或者是函数,并且函数可以将匹配的次数作为函数的第二个参数返回,接下来看看参数repl
的含义: - 如果参数
repl
是一个常规字符串,成功匹配的子串会被repl
直接替换,如果参数repl
中包含转移字符%
,那么可以采用%n
的形式替换,当%n
中的n
取值1-9时,表示一次匹配中的第n个子串,当其中的n
为0时,表示这次匹配的整个子串,%%
表示一个单独的%
。 - 如果参数
repl
是一个表,那么每次匹配中的第一个子串将会作为整个表的键,取table[匹配子串]来替换所匹配出来的子串,当匹配不成功时,函数会使用整个字符串来作为table的键值。 - 如果参数
repl
是一个函数,那么每一次匹配的子串都将作为整个函数的参数,取function(匹配子串)来替换所匹配出来的子串,当匹配不成功时,函数会使用整个字符串来作为函数的参数。如果函数的返回值是一个数字或者是字符串,那么会直接拿来替换,如果它返回false
或者nil
,替换动作将不会发生,如果返回其他的值将会报错。
05-26 07:36