码迷,mamicode.com
首页 > 其他好文 > 详细

ruby正则表达以及匹配替换

时间:2015-04-21 13:13:15      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

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!就可以了

ruby正则表达以及匹配替换

标签:

原文地址:http://my.oschina.net/u/1265071/blog/404412

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!