标签:
ruby正则表达式分两种,一种是转义的,一种是不转义的,不转义的我还没用过,所以不知道效果怎么样,这里只讲讲转义的,大体来讲,所有的表达式都被包含在两个/中间,中括号[]内的代表或,就是任意一个,单个字符匹配使用的是\?(?代表要匹配的特殊字符,比如我要匹配右中括号,那么我就可以写\])恩,基本上就这样,下面给出具体范例:
/a/ :匹配字符a
/[Aa]b/:匹配字符Ab或者ab
/\s/匹配所有的空白,比如空格、换行、tab键
/\n/匹配新的一行
/\r/匹配换行,相当于enter键,注:/n和/r通常放在一起使用,c#下/r/n代表换行,其他语言略有不同,ruby使用单个的\n或\r
/ ./匹配任意字符,例如/a./匹配ab和ac。
/[ab]c/匹配ac和bc,[]之间代表范围。例如:/[a-z]/ , /[a-zA-Z0-9]/。
/[^a-zA-Z0-9]/匹配不在该范围内的字符串。
/[\d]/代表任意数字
/[\w]/代表任意字母,数字或者_
/[\s]/代表空白字符,包括空格,TAB和换行。
/[\D]/,/[\W]/,/[\S]/均为上述的否定情况。
?代表0或1个字符。/Mrs?\.?/匹配"Mr","Mrs","Mr.","Mrs."。
*代表0或多个字符。/Hello*/匹配"Hello","HelloJack"。
+代表1或多个字符。/a+c/匹配:"abc","abbdrec"等等。
/d{3}/匹配3个数字。
/d{1,10}/匹配1-10个数字。
/d{3,}/匹配3个数字以上。
/([A-Z]\d){5}/匹配首位是大写字母,后面4个是数字的字符串。
判断匹配是否成功:ruby可以使用!//.match(text).nil? 其结果是如果有匹配,则输出true,没有匹配成功则输出false;请注意,表达式前面有个!,代表取反
匹配一般来讲是为了替换,所以ruby可以使用这个:text。sub!(正则表达式,要替换的内容)这个仅仅只会替换匹配到的第一个,如果要全部替换的话将sub!改为gsub!就可以了
标签:
原文地址:http://my.oschina.net/u/1265071/blog/404412