Programming Ruby读书笔记(四)

Ruby正则表达式

三种表示方法:

Regexp.new('^s*[a-z]')
/^s*[a-z]/
%r...{^s*[a-z]}

测试代码:

 def show_reqexp(a, re)
  
  if a =~ re
   "#{$`} << #{$&} >> #{$'}"
  else 
   "no match"
  end
  
 end
 
 puts show_reqexp("Fats Waller", /ll/)

结果:Fats Wa << ll >> er

注意:$&:相匹配的字符; $`:匹配字符前的字符; $': 匹配字符后的字符。

此外,还有一些全局变量$~,$1……$9也保存了相关信息, 其中,$~保存了关于匹配的所有信息,而 $1等等保存了相应第几个匹配值信息。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索正则表达式
, 变量
, ruby
, 字符
, 信息
全局
programming ruby、programming ruby pdf、programming ruby 4th、programming ruby下载、读书笔记,以便于您获取更多的相关知识。

时间: 2024-08-18 07:35:55

Programming Ruby读书笔记(四)的相关文章

Programming Ruby读书笔记(三)

Ruby的标准类型: A.数字 class Test 3.times { print "X " } 1.upto(5) { |i| print i, " " } 99.downto(95) { |i| print i, " " } 50.step(80,5) { |i| print i, " " } a = "23" b = "34" puts " " puts a

Programming Ruby读书笔记(二)

1.再谈ruby数组. class Test a = [1, 3, 5, 7, 9] puts a[0] #----->1 puts a[-2] #----->7 puts a[1, 3] #----->[3, 5, 7] puts a[-3, 2] #----->[5, 7] puts a[1..3] #----->[3, 5, 7] puts a[1...3] #----->[3, 5] a[2] = 'cat' #----->[1, 3, "cat

Programming Ruby读书笔记(一)

1. 成员变量的读写属性: attr_reader 和 attr_writer class Test def initialize(name) @name = name end attr_reader :name attr_writer :name end test = Test.new("AAA") puts test.name test.name = "BBB" puts test.name 如果不使用这2个关键字,则按照Java的风格这样写 class Tes

《编程之美》读书笔记(四): 卖书折扣问题的贪心解法

  <编程之美>读书笔记(四):卖书折扣问题的贪心解法        每次看完<编程之美>中的问题,想要亲自演算一下或深入思考的时候,都觉得时间过得很快,动辄一两个小时,如果再把代码敲一遍的话,需要的时间可能更长,真是搞不懂通过微软面试的那些家伙的脑袋到底什么构造,书的序言中提到他们每次面试45分钟,还要写出程序?!在我看来,如果是控制CPU曲线或是中国象棋问题或许还有可能,如果是买书折扣问题,我觉得真的是不太容易,尤其是如果当面试者钻进本题的贪心解法而不是动态规划算法的思路之后,

《淘宝技术这十年》读书笔记 (四). 分布式时代和中间件

        前面两篇文章介绍了淘宝的发展历程.Java时代的变迁和淘宝开始创新技术:            <淘宝技术这十年>读书笔记 (一).淘宝网技术简介及来源            <淘宝技术这十年>读书笔记 (二).Java时代的脱胎换骨和坚若磐石            <淘宝技术这十年>读书笔记 (三).创造技术TFS和Tair        这篇文章主要讲述分布式时代和中间件相关知识,包括服务化.HSF.Notify和TDDL.同时里面有我们经常遇见的编

《Java极限编程》(Java Tool for Extreme Programming)读书笔记 (4)

笔记|编程 第四章 使用Ant进行持续整合这一章是对Ant的一个基础介绍,包括1.Ant构建文件 build.xml2.项目 <project name="myproject" default="all" basedir=".">3.目标 <target name="all" depends="clean, fetch, build, test, docs, deploy">Stev

《Java极限编程》(Java Tool for Extreme Programming)读书笔记 (2)

笔记|编程 第二章 J2EE部署其实这一章所讲的作为一个JAVA开发人员,尤其是J2EE开发人员,是几乎可以跳过的,因为这是基本常识,都应该懂.不过有点满有意思的: 原来只知道这样:<applet code="xptoolkit.applet.HelloWorldApplet"         archive="helloapplet.jar" width=200 height=200></applet> 没想到还能这样:<object

Terry七月Ruby读书笔记(比较详细)第1/4页_ruby专题

Page 3 概述 ¨         解释执行:Python,Ruby,交互性很好: ¨         编译执行:Pascal, C,速度较快. n         本地执行,如C,C++: n         虚拟机执行,如Java, C#.   ¨         动态语言,如JavaScript,Ruby: ¨         静态语言,如C++,Java.   语言 ¨         语法 关键字 ¨         语义 ¨         语用   松本行弘(Matz) 199

More Effective C++ 读书笔记四——异常

条款9:利用destructors避免泄漏资源 这里开始介绍了auto_ptr,其实就是利用了c++局部对象在离开作用域的时候,其析构函数会被调用,来避免资源泄漏.这样的好处,就是不管是作用域正常结束(跑出代码块)还是异常结束(抛出异常),对象的析构函数都能保证被调用. 条款10:在constructors内阻止资源泄漏 c++只会析构已构造完成的对象.对象只有在其constructor执行完毕才算是完全构造妥当. 也就是说,c++不自动清理那些"构造期间抛出exceptions"的对