ruby 正则表达式

Regexp 类:
1、使用 /.../ 或者 %r{} 创建,或者 Regexp.new

 

 

/hay/ =~ 'haystack' #=> 0 # 返回值为匹配字符所在位置,或者 nil
/y/.match('haystack') #=> #<MatchData "y"> # 返回值为 MatchData 或者 nil

 

 

2、

 

 

/[[:alnum:]]/ - 等价于 [0-9a-zA-z]
/[[:alpha:]]/ - 等价于 [a-zA-Z]
/[[:blank:]]/ - 空格或 tab
/[[:cntrl:]]/ - ctrl
/[[:digit:]]/ - [0-9]
/[[:graph:]]/ - 非空白字符 (excludes spaces, control characters, and similar)
/[[:lower:]]/ - 等价于 [a-z]
/[[:print:]]/ - Like [:graph:], but includes the space character
/[[:punct:]]/ - Punctuation character
/[[:space:]]/ - 空白字符 ([:blank:], 换行,回车, 等.)
/[[:upper:]]/ - 大写字符,[A-Z]
/[[:xdigit:]]/ - 16进制数,等价于 [0-9a-fA-F] (i.e., 0-9a-fA-F)
/[[:word:]]/ - A character in one of the following Unicode general categories Letter, Mark, Number, Connector_Punctuation
/[[:ascii:]]/ - A character in the ASCII

 

 3、修饰符

 

 

/pat/i -  忽略大小写
/pat/m - 允许 . 匹配回车换行;同 perl 的 s 修饰符类似。
/pat/x - 忽略空白字符和注释;模板可以写的较为优美,易读。
/pat/o - 仅对 #{} 做一次解析;具体用法还没搞清楚。
i, m, 和x 修饰符可以用在子表达式中。通过 (?) 语法进行开关。

 

    例如rails中使用validates进行校验,匹配图片的格式时,使用 %r{}i 

 

 

  validates_format_of :image_url, :with => %r{\.(gif|jpg|png)$}i, 
                      :on => :create,
                      :message => "must be a URL for GIF, JPG or PNG image"
 

 

4、字符编码

 

 

/pat/u - UTF-8
/pat/e - EUC-JP
/pat/s - Windows-31J
/pat/n - ASCII-8BIT
 

 

 

你可能感兴趣的:(Ruby,Rails,RegExp)