LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 2175|回复: 9

[综合] lua 正则表达式, 求解

[复制链接]
发表于 2014-7-11 10:50:23 | 显示全部楼层 |阅读模式
print(string.gsub("x_y_z_11.png", "(%w+)%.(%w+)", "%2"))
x_y_z_png1



如果改成 %1就是
x_y_z_111


为什么, 谢谢.

回复

使用道具 举报

发表于 2014-7-11 12:01:40 | 显示全部楼层
结果错了
应该是x_y_z_png <制表符>  1
和 x_y_z_11<制表符> 1
第一个查找到的地方是11.png %2 替换的后一部分 png到z_后边的地方
第二个查找到地方还是以上,1%替换前半串11到z_后方。
最后的1表示替换操作了一次
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-11 16:51:10 | 显示全部楼层
龙套哥 发表于 2014-7-11 12:01
结果错了
应该是x_y_z_png   1
和 x_y_z_11 1

谢谢, 再问一下, 既然查找到的地方是11.png
为什么 %2不是返回png呢.
或者说, 返回的string会加上未匹配的部分一起返回?
回复 支持 反对

使用道具 举报

发表于 2014-7-11 17:10:19 来自手机 | 显示全部楼层
jumpchess 发表于 2014-7-11 16:51
谢谢, 再问一下, 既然查找到的地方是11.png
为什么 %2不是返回png呢.
或者说, 返回的string会加上未匹 ...

我也不太懂lua 感觉应该结果是替换过的串。你查查表看下函数的那个返回值定义。
回复 支持 反对

使用道具 举报

发表于 2014-7-11 17:12:05 | 显示全部楼层
    你们这是在说什么。。

点评

O.O  发表于 2014-7-11 10:55 PM
回复 支持 反对

使用道具 举报

发表于 2014-7-11 23:52:48 | 显示全部楼层
暗语啊, 间谍来的,在这里接头
回复 支持 反对

使用道具 举报

发表于 2014-7-12 18:50:13 | 显示全部楼层
(%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”

点评

必须的  发表于 2014-7-12 08:45 PM
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-6-10 01:18 PM , Processed in 0.060337 second(s), 34 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表