`
cxh116
  • 浏览: 74998 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Ruby sub与gsub要注意的地方

阅读更多
本文主要参考<The Ruby Way> 74页

字符串在使用sub和gsub方法时,不能使用$1,$2来替换

   "abc11abc".gsub(/\w+(\d+)\w+/,"abc#{$1}def")

运行这段代码,你会发现$1为空,如果在IRB中,第二次调用时就不会为空了,因为把上次的结果保存到$1

应该这样写
"abc11abc".gsub(/\w+(\d+)\w+/,"abc\\1def")


替换字符用单引号时,只要一个"\"
"abc11abc".gsub(/\w+(\d+)\w+/,"abc\1def")


在双引号中,反斜杠会把后面的字符串解释为八进制转义序列.
1
2
分享到:
评论
1 楼 skandhas 2011-07-07  
"abc11abc".gsub(/\w+(\d+)\w+/,"abc#{$1}def") 
因为在第一次引用$1时,尚未进行正则匹配,所以$1为nil。

如果想用$1,可以这样写:
"abc11abc".gsub(/\w+(\d+)\w+/){ |match| match = "abc#{$1}def" }

其实,还是如你所说,用\1比较方便:
"abc11abc".gsub(/\w+(\d+)\w+/,'abc\1def')

相关推荐

    rust-git-gsub:在存储库中执行gsub的Git子命令

    锈-git-gsub 在存储库中执行gsub的Git子命令。 从移植。 用法 用Subversion代替Git ,运行 $ git gsub Git Subversion 然后你会得到 diff --git a/README.md b/README.md index 2185dbf..393dbc6 100644 --- a/...

    hs-git-gsub:在存储库中执行gsub的Git子命令

    hs-git-gsub 在存储库中执行gsub的Git子命令 用法 用Subversion代替Git ,运行 $ git gsub Git Subversion 然后你会得到 diff --git a/README.md b/README.md index 2185dbf..393dbc6 100644 --- a/README.md +++ b...

    gulp-css-gsub:最小化CSS类的gulp模块

    介绍Gulp-css-gsub是一个gulp模块,它将重写您的js和css文件,以减小文件大小并模糊您的代码。好处保护代码不被窃取允许您查找未使用CSS规则及其应用CSS文件的尺寸更小(最高可享受40%的折扣)安装npm install gulp...

    font-feature-abettings:从字体的 OpenType gsub 数据中收集字形名称

    从字体的 OpenType gsub数据中收集字形名称。 一个小的, -compatabile 模块,它传递字体的潜在替换列表(OpenType gsub表)并将它们转换为可用的根字符名称列表,按 OpenType 功能排序。 入门 这是我们为构建的...

    xproc:很棒的 Ruby 短过程

    安装将此行添加到应用程序的 Gemfile 中: gem "xproc"用法由于它是一种改进,因此您必须在要使用它的任何地方明确包含它。 像这样使用它: require "xproc"using XProc[ "foo" , "bar" , "quox" ] . map ( & x . ...

    轻巧的Ruby Web爬虫/爬虫,具有优雅的DSL,可从页面提取结构化数据。-Ruby开发

    带有优雅DSL的Wombat Web抓取工具,可解析来自网页的结构化数据。 用法:gem install wombat抓取页面:最简单的使用Wombat的方法是调用Wombat.crawl并将其传递给Wombat Web抓取工具以及优雅的DSL,该...e.gsub(/ Expl

    turkish_support:土耳其语字符对核心Ruby方法的支持

    土耳其语支持 土耳其语支持核心Ruby方法。 这个gem提供了几乎所有String方法的支持,例如String#split , String#match , String#gsub 。 它还提供对Array#sort和一些奖励方法(如String#titleize 。...与Ruby一起

    计算机专项考试指南(GRE SUB Computer Science Test)2003版

    GRE计算机专项考试指南,想考Gsub CS的童鞋可以下了看看,比较有帮助。

    string-chapter

    通过输入ruby并在终端中要运行的文件名来运行Ruby文件。 如果要运行string_multiplication.rb ,可以编写以下命令: ruby string_multiplication.rb 要重新运行此命令,可以使用UP和DOWN箭头键查看在终端中运行的...

    bury:类似 Ruby 的 JavaScript 方法

    类似于 Ruby 的 JavaScript 方法。 Bury.js 扩展了原生 JS 对象的原型,例如 String、Number 和 Array。 例子 [ 3 , 3 , 4 , null ] . compact . uniq . sum // =&gt; 7 [ 1 , 2 , 3 , 4 ] . append ( 5 ) . last ...

    Gsub:一个获取子域的命令

    sub 一种获取子域的命令。

    Prototype源码浅析 String部分(一)之有关indexOf优化

    添加到String.prototype中的方法比较多,不过归结起来,大致分为下面几类: 分类 方法名  原始能力增强 strip | include | startsWith | ...interpolate | sub | scan | truncate | gsub HTML处理

    aviglitch:一个用于销毁 AVI 文件的 Ruby 库

    我无法解释他们为什么要销毁自己的数据,但他们确实这样做了。 您可以在找到简短指南。 它提供了一种操作每个 AVI 帧中数据的方法。 它将主要用于制作数据传输视频。 它仅解析容器级结构,不解析编解码器。 有关...

    Prototype源码浅析 String部分(四)之补充

    替换 interpolate | sub | scan | truncate | gsubinterpolate : 将字符串看作一个模板,并使用 ... gsub :将字符串中所有与 pattern 指定的模式匹配的值全部用 replacement 替换掉 上面的方法中,最重要的一

    wombat:具有优雅DSL的轻量级Ruby Web爬网程序,可从页面提取结构化数据

    袋熊 带有优雅DSL的Web抓取工具,可解析来自网页的结构化数据。用法: gem install wombat 抓取页面: ... gsub ( /Explore/ , "Love" ) end features css : '.nav-item-opensource' business css : '.nav-item-busin

    三剑客之【awk】.html

    awk命令常用用法整理;加入了自己在平时运用中的实例,比如通过查询数据库生成...gsub(r,s) #在整个$0中,用s代替r gsub(r,s,t) 在整个t中,用s代替r index(s,t) 返回s中字符串t的第一位置 length(s) 返回s长度 。。。

    String-Substitution:简单的运行时字符串替换函数

    名称 String::Substitution - 简单的运行时字符串替换...sub_*和gsub_*函数有三种变体: copy - 在副本上执行替换并返回副本。 modify - 就地修改变量(就像$s =~ s/// )。 context - 根据context猜测要使用的版

    实现MD5加密

    实现MD5加密

    js-libp2p-gossipsub:GossipsubJavaScript实现

    安装npm install libp2p-gossipsub 用法const Gossipsub = require ( 'libp2p-gossipsub' )const gsub = new Gossipsub ( libp2p , options )await gsub . start ( )gsub . on ( 'fruit' , ( data ) =&gt; { console ....

    firstprogram:因为操“你好世界”。

    在我看来,这不是你应该用 Ruby 或任何语言编写的第一个程序: puts "Hello world!" 它应该看起来更像这样: print "Snoopizzler: " user_input = gets . chomp ; user_input . downcase! if user_input . ...

Global site tag (gtag.js) - Google Analytics