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

本文内容:

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

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

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

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

image

二、锚

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

^     行首

$     行尾

\A   字符串的开始

\z    字符串的结尾

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

\b    单词边界

示例:

image

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

image

image

image

 

三、前视断言

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

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

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

image

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

image

四、修饰语

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

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

image

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

image

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

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

image

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

image

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

image

image

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

 

本文作者:王德水

未经同意,禁止转载