lua 正则表达式, 求解
print(string.gsub("x_y_z_11.png", "(%w+)%.(%w+)", "%2"))x_y_z_png1
如果改成 %1就是
x_y_z_111
为什么, 谢谢.
结果错了
应该是x_y_z_png <制表符>1
和 x_y_z_11<制表符> 1
第一个查找到的地方是11.png %2 替换的后一部分 png到z_后边的地方
第二个查找到地方还是以上,1%替换前半串11到z_后方。
最后的1表示替换操作了一次 龙套哥 发表于 2014-7-11 12:01
结果错了
应该是x_y_z_png 1
和 x_y_z_11 1
谢谢, 再问一下, 既然查找到的地方是11.png
为什么 %2不是返回png呢.
或者说, 返回的string会加上未匹配的部分一起返回? jumpchess 发表于 2014-7-11 16:51
谢谢, 再问一下, 既然查找到的地方是11.png
为什么 %2不是返回png呢.
或者说, 返回的string会加上未匹 ...
我也不太懂lua 感觉应该结果是替换过的串。你查查表看下函数的那个返回值定义。 {:5_255:} 你们这是在说什么。。 暗语啊, 间谍来的,在这里接头 (%w+)%.(%w+) 匹配"11.png"
%2表示第2个捕获项,即第二个括号(%w+)捕获的字符,即"png"
合起来意思就是把“a_b_c_11.png”中的"11.png"替换为"png",即得到"a_b_c_png"
改成%1后,就是拿第1个捕获项去替换,即第一个括号(%w+)捕获的字符,即"11"
那么“a_b_c_11.png”中的"11.png"被“11”替换后即得到“a_b_c_11”
页:
[1]