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?
?
?