发布于 2016-01-27 22:14:16 | 154 次阅读 | 评论: 0 | 来源: 网友投递
Ruby编程语言
Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。
[] 范围描述符 (比如,[a - z] 表示在a 到 z 范围内的一个字母) \w 字母或数字;相当于 [0-9A-Za-z] \W 非字母,数字 \s [ \t\n\r\f]空字符;相当于 [ \t\n\r\f] \S 非空字符 \d [0-9]数字;相当于 [0-9] \D 非数字字符 \b 退格符 (0x08) (仅在范围描述符内部时) \b 字边界(word boundary) (在范围描述符外部时) \B 非字边界 * 前面元素出现0或多次 + 前面元素出现1或多次 {m,n} 前面元素最少出现m次,最多出现n次 ? 前面元素最多出现1次;相当于 {0,1} | 与前面或后面的表达式匹配 () 群( grouping)
ruby> def chab(s) # "contains hex in angle brackets" | (s =~ /<0(x|X)(\d|[a-f]|[A-F])+>/) != nil | end nil ruby> chab "Not this one." false ruby> chab "Maybe this? {0x35}" # wrong kind of brackets false ruby> chab "Or this? <0x38z7e>" # bogus hex digit false ruby> chab "Okay, this: <0xfc0004>." true
# Requires an ANSI terminal! st = "\033[7m" en = "\033[m" while TRUE print "str> " STDOUT.flush str = gets break if not str str.chop! print "pat> " STDOUT.flush re = gets break if not re re.chop! str.gsub! re, "#{st}\\{en}" print str, "\n" end print "\n"
str> foobar pat> ^fo+ foobar ~~~