正規表示式(上)

2021-06-10 21:53:38 字數 1347 閱讀 6629

ruby

正規表示式編輯器

ruby

的正規表示式以"//"作為構造方法。表示式返回乙個

regexp

的物件。

一般規則:

/a/匹配字元 a。

/\?/匹配特殊字元?。特殊字元包括^, $, ? , ., /, \, [, ], , (, ), +, *..匹配任意字元,例如/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

個數字。

/d/匹配 1-10

個數字。

/d/匹配 3

個數字以上。

/([a-z]\d)/匹配首位是大寫字母,後面 4

個是數字的字串。

下圖匹配的是:m後面是字元r, 後面是0或1個字元s, 在後面是0或1個字元".", 匹配

mr、mrs、mr.、mrs.

下面可以匹配

,,,< /p>.

正規表示式操作

string

和regexp

均支援=~和

match 2

個查詢匹配方法

可以看出,如果能夠匹配,=~返回匹配的字串位置,而

match

返回乙個

matchdata

物件。如果不匹配返回

nil。

matchdata

可以取出其中符合各個子匹配的內容。看下面的例子:

m[0]返回匹配主表示式的字串

下面的方法是等同的:

m[n] == m.captures[n]

ruby

也自動的為我們填寫了一些全域性變數,它們以數字做名:

$1,$2,等等,$1

包含的是正規表示式中從左側開始的第一對小括號內的子模式所匹配的字串

我們看出匹配時,是從外到內,從左到右的順序

其它的一些方法

Ruby正規表示式(上)

ruby的正規表示式以 作為構造方法。表示式返回乙個regexp的物件。一般規則 a 匹配字元a。匹配特殊字元?特殊字元包括 匹配任意字元,例如 a.匹配ab和ac。ab c 匹配ac和bc,之間代表範圍。例如 a z a za z0 9 a za z0 9 匹配不在該範圍內的字串。d 代表任意數字...

Ruby正規表示式(上)

ruby的正規表示式以 作為構造方法。表示式返回乙個regexp的物件。一般規則 a 匹配字元a。匹配特殊字元?特殊字元包括 匹配任意字元,例如 a.匹配ab和ac。ab c 匹配ac和bc,之間代表範圍。例如 a z a za z0 9 a za z0 9 匹配不在該範圍內的字串。d 代表任意數字...

13 正規表示式(上)

正規表示式概述 正規表示式的執行 建立正規表示式 特殊字元 正規表示式,又稱規則表示式。英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正則表通常被用來檢索 替換那些符合某個模式 規則 的文字。直接量語法 pattern attribut...