Ruby的特点
1、完全面向对象
在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数、浮点数等。
2、变量没有类型
Ruby不像其他静态语言,需要事先声明变量的类型,给变量赋予什么类型数据该变量就是什么类型的。
3、任何东西都有值
不管是数学或者逻辑表达式还是一个语句,都有值
4、变量的命名规则
- 变量(variable)一般由小写字母、下划线开头
- 全局变量(global variable)由$开头
- 实例变量(instance variable)由@开头
- 类变量(class variable)由@@开头
class DemoClass def methodA "general methodA" end end dc = DemoClass.new dc.methodA #"general methodA" def dc.methodA "special for this instance." end dc.methodA #"special for this instace."6、强大的字符串处理 Ruby的字符串非常强大,因为它支持表达式、函数等
say = "hello world!" puts "Tom said #{say}" #Tom said hello world!"注意:如果是类变量或者是实例变量可以省略花括号"{}" 7、灵活的交互式环境 打开控制台,输入irb,按回车键即可进入交互式环境 8、丰富的文档支持 例如查找字符串的replace方法,只需在控制台输入ri String#replace,按回车键即可查看到replace方法的文档说明 9、Ruby吸收了Perl的正则表达式,Phthon的简单性可读性,Smalltalk的纯面向对象和单继承,LISP的无穷嵌套的语法,Java的线程...
- 创建正则表达式
- 从 Regexp 类创建:
a = Regexp.new('^#.*')
- 用 PERL 方式构建:
a = /^#.*/
- 用 %r{} 构建:
a= %r{^#.*}
- 从 Regexp 类创建:
- 匹配操作
Regexp#match方法对字符串匹配正则表达式。如果失败了,返回nil;如果成功,则返回MatchData类的一个事例。MatchData对象让你访问关于这次匹配的所有可用信息。所有这些好东西是通过$变量得到的
irb(main):001:0> re = /(\d+): (\d+)/ #match a time hh:mm => /(\d+): (\d+)/ irb(main):002:0> md = re.match("Time: 17:12pm") => #<MatchData "17:12" 1:"17" 2:"12"> irb(main):003:0> md.class => MatchData irb(main):004:0> md[0] => "17:12" irb(main):005:0> md[1] => "17" irb(main):006:0> md[2] => "12" irb(main):007:0> md.pre_match => "Time: " irb(main):008:0> md.post_match => "pm" irb(main):009:0> $& => "17:12" irb(main):010:0> $1 => "17" irb(main):011:0> $2 => "12" irb(main):012:0> $` => "Time: " irb(main):013:0> $' => "pm" irb(main):014:0> $~ => #<MatchData "17:12" 1:"17" 2:"12">