Ruby 正規表示式

2021-09-04 22:33:37 字數 2707 閱讀 3413

雖然現在各種高階語言基本都支援了正規表示式,但是貌似ruby卻表現的強烈而又靈活。

正規表示式是一種字串匹配的模式。可以用來乙個串中是否含有乙個子串;替換匹配的子串;或者取出匹配的子串等等。。。方便的文字操作!

在ruby中,建立正規表示式的方式通常是/pattern/或%r.

我們可以用

regexp

類來new

乙個正規表示式。

new的優點是可以通過字串來生成正規表示式。這有助於通過配置檔案來構造產生表示式。函式原型:

regexp.new(pattern [,options ])

pattern

是模式字串,

options

是可選的模式選項,是下面

3個常量的組合。

1.extended :

忽略空格和換行符

2 .ignorecase

:忽略大小寫

3  .

multiline  

:把換行符當成普通字元對待。

瑣碎的東西:

特殊符號--

( )

標記乙個子表示式的開始和結束位置。

子表示式可以獲取供以後使匹配這些字元,請使用

\( 和 \)

範圍描述符

( 比如

,[a - z]

表示在a

到 z

範圍內的乙個字母

) ,

要匹配

使用\[

{}

標記限定符表示式。要匹配 。

例如,zo*

能匹配"z"

以及"zoo"

。要匹配

* 字元,請使用\*。

+

前面元素出現

1或多次。

+ 等價於。

例如,'zo+'

能匹配"zo"

以及"zoo"

,         但不能匹配

"z"。

要匹配+

字元,請使用\+。

?

前面元素最多出現1次

;相當於

。例如,

」do(es)?」

可以匹配

「do」

或「does」

中的"do"

。要匹配

? 字元,請使用\?。

n 是乙個非負整數。匹配確定的

n 次。

例如,'o'

不能匹配

"bob"

中的'o',

但是能匹配

"food"

中的兩o

n 是乙個非負整數。至少匹配

n 次。

'o'

等價於'o+'

。'o'

則等價於

'o*'

。 例如,

'o'

不能匹配

"bob"

中的'o'

,但能匹配

"foooood"

中的所有o。

m 和

n 均為非負整數,其中

n <= m

。前面元素最少出現n次

,最多現m

次。 'o'

等價於'o?'

。請注意在逗號和兩個數之間不能有空格

例如,"o"

將匹配"fooooood"

中的前三個o。

定位符:

用來描述字串或單詞的邊界,不能對定位符使用限定符。

^

匹配輸入字串的開始位置,除非在方括號表示式中使用,

此時它表示不接受該

字元集合。要匹配

^ 字元本身,請使用\^。

$匹配輸入字串的結尾位置。如果設定了

regexp

物件的multiline

屬性, 則$

也匹配'\n'

或'\r'

。要匹配

$ 字元本身,請使用\$。

\b

匹配乙個單詞邊界,也就是指單詞和空格間的位置。例如,

'er\b'

可以匹配

"never"

中的'er'

,但不能匹配

"verb"

中的'er'

\b

匹配非單詞邊界。

'er\b'

能匹配"verb"

中的'er'

,但不能匹配

"never"

中的'er'

優先順序:

轉義符   -->  圓括號,方括號  --->  限定符  --->定位符 -->或操作

常用操作符:

1.  =~  檢驗是否匹配,若匹配則返回匹配處的索引

!~   檢驗不匹配,返回true或false(nil)

2.   ~匹配$_並返回匹配處的索引。

3.   match :返回匹配物件

ruby正規表示式

ruby用 將正規表示式括起來。表示開頭,表示結尾,表示0個以上的任意字元。現在就講講正規表示式的規則的寫法。正規表示式中有很多上述的具有特別意義的字元。首先是下列字元。範圍描述符。a z 表示從a到z之間的任意乙個。w 英文本母和數字。即 0 9 a z a z w 非英文本母和數字 s 空字元,...

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支援的正規表示式符號 元字元 有這麼個規則 不帶 的數字和字母不是元字元 帶 的符號也不是元字元 下文中出現的 匹配多位元組字元的正規表示式 是指,通過使用 kcode進行設定,或顯式地使用漢字選項 請參考正規表示式字面值 等方式進行的匹配多位元組字元的正規表示式。行首。與字串的頭部或換行符...