一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Ruby - 詳細(xì)介紹Ruby中的正則表達(dá)式

詳細(xì)介紹Ruby中的正則表達(dá)式

2020-06-03 10:23ruby教程網(wǎng) Ruby

這篇文章主要介紹了詳細(xì)介紹Ruby中的正則表達(dá)式,文章中還給出了用于搜索和替換的正則表達(dá)式的使用實(shí)例,需要的朋友可以參考下

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

正則表達(dá)式從字面上看是一種介于斜杠之間或介于跟在 %r 后的任意分隔符之間的模式,如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/pattern/
/pattern/im  # 可以指定選項(xiàng)
%r!/usr/local! # 一般的分隔的正則表達(dá)式
實(shí)例
#!/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é)果:

?
1
Line1 contains Cats

正則表達(dá)式修飾符

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

詳細(xì)介紹Ruby中的正則表達(dá)式

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

?
1
2
3
4
5
6
7
# 下面匹配單個(gè)斜杠字符,不轉(zhuǎn)義
 
 
%r|/|      
 
# Flag 字符可通過下面的語法進(jìn)行匹配
%r[</(.*)>]i

正則表達(dá)式模式

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

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

詳細(xì)介紹Ruby中的正則表達(dá)式

詳細(xì)介紹Ruby中的正則表達(dá)式詳細(xì)介紹Ruby中的正則表達(dá)式詳細(xì)介紹Ruby中的正則表達(dá)式詳細(xì)介紹Ruby中的正則表達(dá)式詳細(xì)介紹Ruby中的正則表達(dá)式搜索和替換

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

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

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

下面是一個(gè)實(shí)例:

?
1
2
3
4
5
6
7
8
9
10
11
#!/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é)果:

?
1
2
Phone Num : 2004-959-559
Phone Num : 2004959559

下面是另一個(gè)實(shí)例:

?
1
2
3
4
5
6
7
8
9
10
11
#!/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é)果:

?
1
Rails are Rails, really good Ruby on Rails

 

延伸 · 閱讀

精彩推薦
  • Ruby剖析 Ruby 訪問控制

    剖析 Ruby 訪問控制

    前面,我們說 Ruby 沒有函數(shù),只有方法.而且實(shí)際上有不止一種方法.這一節(jié)我們介紹 訪問控制 (accesscontrols). 想想當(dāng)我們在最高層而不是在一個(gè)類的定義里定義...

    ruby教程網(wǎng)3572020-04-08
  • RubyRuby進(jìn)行文件信息輸出實(shí)例代碼

    Ruby進(jìn)行文件信息輸出實(shí)例代碼

    Ruby進(jìn)行文件信息輸出實(shí)例代碼,數(shù)據(jù)是隨機(jī)的,所以每次的記錄都會(huì)不同。 ...

    ruby教程網(wǎng)2962020-04-10
  • RubyRuby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

    這篇文章主要介紹了Ruby迭代器的7種技巧分享,Ruby中的迭代器非常人性化,本文既是講解了7個(gè)技巧也是講解了7種迭代器,需要的朋友可以參考下 ...

    腳本之家4782020-04-20
  • RubyCentOS中配置Ruby on Rails環(huán)境

    CentOS中配置Ruby on Rails環(huán)境

    經(jīng)過一個(gè)上午的折騰,終于把ROR環(huán)境在CentOS中搞定,繞了很多彎路,把文章寫下來總結(jié)一下 ...

    可樂加糖4762020-04-12
  • RubyRuby環(huán)境下安裝使用bundler來管理多版本的gem

    Ruby環(huán)境下安裝使用bundler來管理多版本的gem

    這篇文章主要介紹了Ruby環(huán)境下安裝使用bundler來管理多版本的gem的方法,舉了Ruby On Rails中的應(yīng)用實(shí)例來進(jìn)行演示,需要的朋友可以參考下 ...

    日拱一卒4332020-05-10
  • RubyRuby設(shè)計(jì)模式編程中使用Builder建造者模式的實(shí)例

    Ruby設(shè)計(jì)模式編程中使用Builder建造者模式的實(shí)例

    這篇文章主要介紹了Ruby設(shè)計(jì)模式編程中使用Builder建造者模式的實(shí)例,建造者模式將一個(gè)復(fù)雜對(duì)象的構(gòu)造與它的表示分離,使同樣的構(gòu)建過程可以創(chuàng)建不同的表...

    范孝鵬2192020-05-07
  • RubyRuby簡潔學(xué)習(xí)筆記(一):字符串、數(shù)字、類和對(duì)象

    Ruby簡潔學(xué)習(xí)筆記(一):字符串、數(shù)字、類和對(duì)象

    這篇文章主要介紹了Ruby簡潔學(xué)習(xí)筆記(一):字符串、數(shù)字、類和對(duì)象,本文是學(xué)習(xí)筆記第一篇,需要的朋友可以參考下 ...

    腳本之家2472020-04-20
  • Ruby簡要說明Ruby中的迭代器

    簡要說明Ruby中的迭代器

    這篇文章主要介紹了Ruby中的迭代器,迭代器的概念在動(dòng)態(tài)語言的編程中十分重要,文章中介紹了Ruby中的each迭代器和collect迭代器,需要的朋友可以參考下 ...

    goldensun2772020-04-25
主站蜘蛛池模板: 国产精品刺激好大好爽视频 | 精品国产福利片在线观看 | 熟睡中的麻麻大白屁股小说 | 97超pen个人视频公开视频视 | 放荡警察巨r麻麻出轨小说 范冰冰特黄xx大片 饭冈加奈子在线播放观看 法国老妇性xx在线播放 | 午夜免费无码福利视频麻豆 | 国产探花在线观看 | 国产91成人精品亚洲精品 | 亚洲成人中文 | 免费大片 | 狠狠干在线观看 | 我的家教老师在线观看 | 色综合天天综合中文网 | 国产精品福利一区二区亚瑟 | 日韩欧美亚洲一区精选 | 成年人黄视频在线观看 | 99资源在线观看 | 日本五级床片全都免费播放 | 包臀裙女教师波多野结衣 | 18美女光胸光屁屁洗澡 | 免费福利资源站在线视频 | 贰佰麻豆剧果冻传媒一二三区 | 四虎在线精品免费高清在线 | 四虎在线免费 | 日本大片免aaa费观看视频 | 暖暖 免费 高清 日本 中文 | 欧美香蕉人人人人人人爱 | 成人精品在线 | 日本一区二区三区在线 视频 | 特级夫妻大片免费在线播放 | 亚洲天堂网在线观看视频 | 久久精品国产亚洲AV蜜臀 | 国产精品久久久天天影视香蕉 | 九九大香尹人视频免费 | freefron性中国国产高清 | 99热久久这里只有精品23 | 色偷偷影院| 黑人巨鞭大战白妞10级 | 成人免费高清视频 | 男女18一级大黄毛片免 | 大胆国模一区二区三区伊人 |