设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2585|回复: 7
打印 上一主题 下一主题

[已经解决] 正则text.gsub!这段代码具体是什么意思?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14581
在线时间
2192 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2019-3-25 19:10:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
谁能帮我解读下,看了一些正则基础也理解不透这块。
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
\\      :相当于\
+      :重复一次或更多次
[0-9] :代表0-9任意一个数字
我只明白这点,剩下的,就不怎么清楚了,
我看教程里面text.gsub(/正则表达式/,"替换字符")
如:p "\n".gsub(/^/,"o") #=> "o\n"

但是RGSS(截图里面的)里面这种写法我就不明白了
text.gusb!(/正则表达式/)){}上面是这个格式,

我暂时能解读的是text文本当中匹配\[Cc]接着中括号0-9任意一个数字1个或1个以上,后面大括号就不明白了。

1.png (55.29 KB, 下载次数: 21)

1.png

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2019-3-25 19:30:20 | 只看该作者
这是 gsub! 的另一种用法。
RUBY 代码复制
  1. text.gsub!(pattern) {|match| block}


只有一个正则表达式 pattern 作为参数,后面的 {} 表示的是代码块,代码块的返回值作为实际用于替换的内容。引入代码块的意义在于可以使得要替换的内容更加灵活。因此这段
RUBY 代码复制
  1. text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]"}

的含义为:替换 \c[数字]\001[数字],在这里 $1 是个特殊的变量,来表示正则表达式中第一个括号里的实际内容(在这里是 [0-9]+)

注意:不能写成 text.gsub!(/\\[Cc]\[([0-9]+)\]/, "\001[#{$1}]"),请思考原因。

点评

调皮!我正在学习和思考中!  发表于 2019-3-25 21:18

评分

参与人数 2星屑 +50 +2 收起 理由
fux2 + 1 无敌的rb酥酥
guoxiaomi + 50 + 1 不想思考

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14581
在线时间
2192 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

3
 楼主| 发表于 2019-3-25 21:35:51 | 只看该作者
本帖最后由 miantouchi 于 2019-3-25 21:37 编辑
RyanBern 发表于 2019-3-25 19:30
这是 gsub! 的另一种用法。
text.gsub!(pattern) {|match| block}[/pre]


换成你给的这个代码,$1这个值就会变成空的,[]里面会替换为空了,我只能从现象里发现不一样的地方。具体原因还是不是太清楚了。

11.png (73.09 KB, 下载次数: 20)

11.png

点评

哦,这样啊,之前也看了,就是没对上号,到底说的是哪里。  发表于 2019-3-26 21:38
F1就有提到了"与没带块时不同的是,可以在块中调用内部变量 $<digits>", 所以没带块的gsub, 是无法调用$1这个内部变量的  发表于 2019-3-26 14:45
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14585
在线时间
2149 小时
注册时间
2016-9-20
帖子
859
4
发表于 2019-3-25 22:35:54 | 只看该作者
miantouchi 发表于 2019-3-25 21:35
换成你给的这个代码,$1这个值就会变成空的,[]里面会替换为空了,我只能从现象里发现不一样的地方。具体 ...

会不会里面的值被吸掉了

点评

吸星大法?  发表于 2019-3-25 22:44
我发的贴子大多未经整理是草稿抱歉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-14 14:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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