一步一步学Ruby(十):Ruby正则表达式(下)

本文内容:

  • 贪婪量词和不贪婪量词
  • 前视断言
  • 修饰语
  • 正则与字符串的转换
  • 正则表达式常用的地方

一、贪婪量词和不贪婪量词

量词*(零个或多个)和+(一个或多个)是贪婪的,它们会匹配尽可能多的字符,我们可以在*和+后面加一个?,使它成为非贪婪量词

下面代码是: 1个或多个字符后接一个感叹号。

一步一步学Ruby(十):Ruby正则表达式(下)

二、锚

锚是指必须满座一定的条件,才能继续匹配

^     行首

$     行尾

\A   字符串的开始

\z    字符串的结尾

\Z    字符串的结尾(不包括最后的换行符)

\b    单词边界

示例:

一步一步学Ruby(十):Ruby正则表达式(下)

下面演示我们用正则取出注释的内容

一步一步学Ruby(十):Ruby正则表达式(下)

一步一步学Ruby(十):Ruby正则表达式(下)

一步一步学Ruby(十):Ruby正则表达式(下)

 

三、前视断言

前视断言表示想要知道下一个指定的是什么,但并不匹配

1. 肯定的前视断言(?=)

假设我们想要匹配一个数的序列,该序列以一个圆点结束,但并不想把圆点作为模式匹配的一部分

一步一步学Ruby(十):Ruby正则表达式(下)

2. 否定的前视断言(?!)

一步一步学Ruby(十):Ruby正则表达式(下)

四、修饰语

修饰语位于正则表达式最结束正则表达式的正斜杠的后面

1. i  使正则表达式对大小写不敏感

一步一步学Ruby(十):Ruby正则表达式(下)

2. m 使得正则表达式可以和任何字符匹配,包括换行符,通常情况下圆点通配符不匹配换行符

一步一步学Ruby(十):Ruby正则表达式(下)

五、字符串与正则表达式的相互转换

1. 字符串内插进正则表达式

一步一步学Ruby(十):Ruby正则表达式(下)

2.正则表达式转换成字符串

一步一步学Ruby(十):Ruby正则表达式(下)

六、使用正则表达式的常见方法

一步一步学Ruby(十):Ruby正则表达式(下)

一步一步学Ruby(十):Ruby正则表达式(下)

还有sub/sub!和gsub/gsub!, grep这些也常用到正则表达式.

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2009/02/03/1383505.html如需转载请自行联系原作者


王德水