亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳細介紹Ruby中的正則表達式

 更新時間:2015年04月10日 09:45:53   投稿:goldensun  
這篇文章主要介紹了詳細介紹Ruby中的正則表達式,文章中還給出了用于搜索和替換的正則表達式的使用實例,需要的朋友可以參考下

正則表達式是一種特殊序列的字符,它通過使用有專門語法的模式來匹配或查找其他字符串或字符串集合。
語法

正則表達式從字面上看是一種介于斜杠之間或介于跟在 %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"
end
if ( line2 =~ /Cats(.*)/ )
 puts "Line2 contains Dogs"
end

這將產(chǎn)生以下結(jié)果:

Line1 contains Cats

正則表達式修飾符

正則表達式從字面上看可能包含一個可選的修飾符,用于控制各方面的匹配。修飾符在第二個斜杠字符后指定,如上面實例所示。下標(biāo)列出了 可能的修飾符:

201541093958504.jpg (982×274)

就像字符串通過 %Q 進行分隔一樣,Ruby 允許您以 %r 作為正則表達式的開頭,后面跟著任意分隔符。這在描述包含大量您不想轉(zhuǎn)義的斜杠字符時非常有用。

# 下面匹配單個斜杠字符,不轉(zhuǎn)義


%r|/|       
 
# Flag 字符可通過下面的語法進行匹配
%r[</(.*)>]i 

正則表達式模式

除了控制字符,(+ ? . * ^ $ ( ) [ ] { } | \),其他所有字符都匹配本身。您可以通過在控制字符前放置一個反斜杠來對控制字符進行轉(zhuǎn)義。

下表列出了 Ruby 中可用的正則表達式語法。

201541094045775.jpg (957×701)

201541094114283.jpg (957×731)201541094152882.jpg (956×720)201541094244206.jpg (951×711)201541094311488.jpg (943×723)201541094334570.jpg (964×279)搜索和替換

sub 和 gsub 及它們的替代變量 sub! 和 gsub! 是使用正則表達式時重要的字符串方法。

所有這些方法都是使用正則表達式模式執(zhí)行搜索與替換操作。sub 和 sub! 替換模式的第一次出現(xiàn),gsub 和 gsub! 替換模式的所有出現(xiàn)。

sub 和 gsub 返回一個新的字符串,保持原始的字符串不被修改,而 sub! 和 gsub! 則會修改它們調(diào)用的字符串。

下面是一個實例:

#!/usr/bin/ruby
 
phone = "2004-959-559 #This is Phone Number"
 
# 刪除 Ruby 的注釋
phone = phone.sub!(/#.*$/, "") 
puts "Phone Num : #{phone}"
 
# 移除數(shù)字以外的其他字符
phone = phone.gsub!(/\D/, "")  
puts "Phone Num : #{phone}"

這將產(chǎn)生以下結(jié)果:

Phone Num : 2004-959-559
Phone Num : 2004959559

下面是另一個實例:

#!/usr/bin/ruby
 
text = "rails are rails, really good Ruby on Rails"
 
# 把所有的 "rails" 改為 "Rails"
text.gsub!("rails", "Rails")
 
# 把所有的單詞 "Rails" 都改成首字母大寫
text.gsub!(/\brails\b/, "Rails")
 
puts "#{text}"

這將產(chǎn)生以下結(jié)果:

Rails are Rails, really good Ruby on Rails

相關(guān)文章

最新評論