正则表达式类

推荐使用 rubular.com来测试你写的正则表达式~

正则表达式对象的创建

re = Regexp.new("Ruby")
re = /Ruby/

%r(模式)
%r<模式>
%r|模式|
%r!模式!

/http:\/\/([^\/]*)\//
%r|http://([^/]*)/|

常用匹配

模式 意义
[abc] abc其中一个
[^abc] 除abc以外的
[a-z] a-z范围内
[a-zA-Z] a-z或A-Z范围内
^ 行首
$ 行尾
\A 字符串开头
\z 字符串末尾
. 任意字符
\s 空白字符
\S 空白字符除外
\d 0-9的数字
\D 0-9的数字除外
\w 英文字母和数字
\W 英文字母和数字除外
\b Any word boundary
(...) 封闭的,一般用来做重复匹配
(a|b) a 或者 b
a? 0个或1个a
a* 0个或多个a
a+ 1个或多个a
a{3} 正好3个a
a{3,} 3个或更多a
a{3,6} 3~6个之间的a
i 不区分大小写
m 匹配多行
x 忽略模式中的空白字符
o 只使用一次内嵌表达式