beast1.0 解读(三)

写代码好歹也快一年多,但对user.rb里的format所用的正则表达式却是云里雾里的,说出去真的很丢脸。为了不在人前丢脸。这次好好的学习一下RUBY的正则表达式。
[注: 以下内容为转帖]
ruby 代码
[]  范围描述符 (比如,[a - z] 表示在a 到 z 范围内的一个字母)        \w  字母或数字;相当于 [0-9A-Za-z]       \W  非字母,数字       \s  [ \t\n\r\f]空字符;相当于 [ \t\n\r\f]       \S  非空字符       \d  [0-9]数字;相当于 [0-9]       \D  非数字字符       \b  退格符 (0x08) (仅在范围描述符内部时)       \b  字边界(word boundary) (在范围描述符外部时)       \B  非字边界       *  前面元素出现0或多次       +  前面元素出现1或多次       {m,n}  前面元素最少出现m次,最多出现n次       ?  前面元素最多出现1次;相当于 {0,1}       |  与前面或后面的表达式匹配       ()  群( grouping)   

ruby 代码
  1. 字符类缩写   
  2. 字符序列 [ ... ] 意思   
  3. \d [0-9] 数字字符   
  4. \D [^0-9] 非数字   
  5. \s [\s\t\r\n\f] 空格字符   
  6. \S [^\s\t\r\n\f] 非空格字符   
  7. \w [A-Za-z0-9_] 单词符号   
  8. \W [^A-Za-z0-9_] 非单词符号   
  9.   
  10. 重复   
  11. r * 匹配0个或多个 r.   
  12. r + 匹配1个或多个 r.   
  13. r ? 匹配0个或1个 r.   
  14. r {m,n} 匹配最少m个,最多n个 r.   
  15. r {m,r} 匹配最少m个 r.   
  16. 重复模式串尽可能匹配多的字符串,在其后面加一个问号“?”,让它匹配最少的。   
  17. '|'匹配正则表达式中它左右两边模式中的一个。   

基于模式的子串技术
String#sub 和 String#gsub 方法 寻找字符串中匹配它们第一个参数的那部分,然后把那部分用它们的第二个参数代替,前者只替换一次,后者替换所有的。另外一个版本的方法String#sub! 和 String#gsub! 会修改原始字符串。
第二个参数可以是字符串和程序块

子串函数中的转义字符
一些外加的转义字符用在字符串替换中:\&(最后那个匹配),\+(最后匹配的组),\`(匹配串前面的字符串),\'(匹配后面的字符串),\\(反斜杠)。
把一个斜杠变成两个斜杠的例子:

ruby 代码
 
  1. str.gsub(/\\/, '\\\\\\\\')   输出: "a\\b\\c"     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值