先推荐一个在线的Ruby正则表达式编辑器http://www.rubular.com/
Ruby的正则表达式以"//"作为构造方法。表达式返回一个RegExp的对象。 一般规则: /a/匹配字符 a。 |
/\?/匹配特殊字符?。特殊字符包括^, $, ? , ., /, \, [, ], {, }, (, ), +, *..匹配任意字符,例如/a./匹配 ab和ac。 /[\d]/代表任意数字 /[\w]/代表任意字母,数字或者_ /[\s]/代表空白字符,包括空格,TAB和换行。 /[\D]/,/[\W]/,/[\S]/均为上述的否定情况。 高级规则: ?代表 0或1个字符。/Mrs?\.?/匹配"Mr","Mrs","Mr.","Mrs."。 *代表 0或多个字符。/Hello*/匹配"Hello","HelloJack"。 |
/d{3}/匹配 3个数字。 下图匹配的是:M后面是字符r, 后面是0或1个字符s, 在后面是0或1个字符".", 匹配Mr、Mrs、Mr.、Mrs. |
下面可以匹配</p>,</ p>,</p >,< /p>. 正则表达式操作 String和RegExp均支持=~和match 2个查询匹配方法 可以看出,如果能够匹配,=~返回匹配的字符串位置,而match返回一个MatchData |
对象。如果不匹配返回nil。
|
m[0]返回匹配主表达式的字符串下面的方法是等同的:
m[n] == m.captures[n]
Ruby也自动的为我们填写了一些全局变量,它们以数字做名:$1,$2,等等,$1包含的是正则表达式中从左侧开始的第一对小括号内的子模式所匹配的字符串
我们看出匹配时,是从外到内,从左到右的顺序
其它的一些方法