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

Project1

 找回密码
 注册会员
搜索

正则text.gsub!这段代码具体是什么意思?

查看数: 2547 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-3-25 19:10

正文摘要:

谁能帮我解读下,看了一些正则基础也理解不透这块。 text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" } \\      :相当于\ +      :重复一次或更多次 [0-9] :代表0-9任意 ...

回复

ppspssss 发表于 2019-3-25 22:35:54
miantouchi 发表于 2019-3-25 21:35
换成你给的这个代码,$1这个值就会变成空的,[]里面会替换为空了,我只能从现象里发现不一样的地方。具体 ...

会不会里面的值被吸掉了

点评

吸星大法?  发表于 2019-3-25 22:44
RyanBern 发表于 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 不想思考

查看全部评分

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

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

GMT+8, 2024-11-11 01:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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