2007年1月19日星期五

Regular Expression In Ruby Language

Four ways of writing regular expression in ruby:
  1. /something/
  2. Regexp.new("something")
  3. Regexp.compile("something")
  4. %r{something}

Regexp::MULTILINE m
Normally, a regexp matches against a single line of a string. This will cause a regexp to treat line breaks like any other character.

Regexp::IGNORECASE i
Makes matches case-insensitive


Regexp::EXTENDED x
This modifier lets you space out your regular expressions with whitespace and comments, making them more legible.

一篇关于ruby中正则表达式的文章翻译
原文出处: http://www.regular-expressions.info/ruby.html

Ruby中正则表达式的修饰符(译)

在Ruby中使用正则表达式 Ruby支持正则表达式作为其一项语言特性。在Ruby中,正则表达式被写作 /模版/修饰符 的形式,这里的"模版"就是正则表达式本身,而"修饰符"则是一系列不同选项字符的标识,另外,"修饰符"部分是可选的。这个语法特点从Perl借鉴而来。 Ruby支持如下的修饰符: /i 使正则表达式大小写不敏感(正则表达式本身是大小写敏感的) /m 使"."匹配新行。Ruby使用/m,然而Perl和其他很多编程语言使用/s来实现"点(.)匹配新行"。 /o 它将致使任何的 #{...}替换符在一个特殊的正则表达式中仅仅被执行一次,它在第一次会被求值。然而,如果没有用/o,替换符将会每次都执行,并且产生一个Regexp对象。
你能同时使用如上的修饰符象这样: /rgex/is
在Ruby中,^字符号和$符号总是匹配新行的前后。Ruby没有修饰符能够改变这个特点。使用\A 和 \Z 可以匹配在字符串的始端或者末端。 因为正斜杆界定了正则表达式的长度,所以任何出现在正则表达式中的正斜杆都将被除去。例如,在ruby中,正则表达式 1/2 被写做 /1\/2/ (这里隐藏了含义,即反斜杆\,通常被我们成为转义符)

没有评论: