一步一步學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這些也常用到正則表達式.

 

本文作者:王德水

未經同意,禁止轉載