正規表示式是一種特殊序列的字元,它通過使用有專門語法的模式來匹配或查詢其他字串或字串集合。
語法正規表示式從字面上看是一種介於斜槓之間或介於跟在 %r 後的任意分隔符之間的模式,如下所示:
/pattern/
/pattern/im # 可以指定選項
%r!/usr/local! # 一般的分隔的正規表示式
例項#!/usr/bin/ruby
line1 = "cats are smarter than dogs";
line2 = "dogs also like meat";
if ( line1 =~ /cats(.*)/ )
puts "line1 contains cats"
endif ( line2 =~ /cats(.*)/ )
puts "line2 contains dogs"
end這將產生以下結果:
line1 contains cats
正規表示式修飾符
正規表示式從字面上看可能包含乙個可選的修飾符,用於控制各方面的匹配。修飾符在第二個斜槓字元後指定,如上面例項所示。下標列出了 可能的修飾符:
就像字hccuati符串通過 %q 進行分隔一樣,ruby 允許您以 %r 作為正規表示式的開頭,後面跟著任意分隔符。這在描述包含大量您不想轉義的斜槓字元時非常有用。
# 下面匹配單個斜槓字元,不轉義
%r|/|
# flag 字元可通過下面的語法進行匹配
%r[(.*)>]i
正規表示式模式
除了控制字元,(+ ? . * ^ $ ( ) [ ] | hccuati),其他所有字元都匹配本身。您可以通過在控制字元前放置乙個反斜槓來對控制字元進行轉義。
下表列出了 ruby 中可用的正規表示式語法。
搜尋和替換
sub 和 gsub 及它們的替代變數 sub! 和 gsub! 是使用正規表示式時重要的字串方法。
所有這些方法都是使用正規表示式模式執行搜尋與替換操作。sub 和 sub! 替換模式的第一次出現,gsub 和 gsub! 替換模式的所有出現。
sub 和 gsub 返回乙個新的字串,保持原始的字串不被修改,而 sub! 和 gsub! 則會修改它們呼叫的字串。
下面是乙個例項:
#!/usr/bin/ruby
phone = "2004-959-559 #this is phone number"
# 刪除 ruby 的注釋
phone = phone.sub!(/#.*$/, "")
puts "phone num : #"
# 移除數字以外的其他字元
phone = phone.gsub!(/\d/, "")
puts "phone num : #"
這將產生以下結果:
phone num : 2004-959-559
phone num : 2004959559
下面是另乙個例項:
#!/usr/bin/ruby
text = "rails www.cppcns.comare rails, really good ruby on rails"
# 把所有的 "rails" 改為 "rails"
text.gsub!("rails", "rails")
# 把所有的單詞 "rails" 都改成首字母大寫
text.gsub!(/\brails\b/, "rails")
puts "#"
這將產生以下結果:
rails are rails, really good ruby on rails
本文標題: 詳細介紹ruby中的正規表示式
本文位址: /wangluo/re/122426.html
正規表示式詳細介紹
單個表示 1 d 數字 2 d 非數字 注 大小寫就是取反的意思 3 w 任意乙個字母或數字或下劃線 4 s 空白符 換行 製表符 空格 5 任意字元 除了換行符 自定義字元集合 表示匹配內的任意乙個字元,是乙個或運算,比如 123 就表示是數字1或數字2或數字3 表示非運算,比如 123 表示除了...
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 代表任意數字...