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

腳本之家,腳本語言編程技術(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
主站蜘蛛池模板: 全是女性放屁角色的手游 | 青青青视频免费线看 视频 青青青青青国产免费手机看视频 | 精品视频一区在线观看 | 久9青青cao精品视频在线 | 99在线观看免费视频 | 天天色天天舔 | 91会员| 精品免费久久久久久影院 | 日本视频中文字幕 | 女暴露狂校园裸露小说 | 亚洲第一综合网站 | 精品湿 | 美女在尿口隐私视频 | 日本视频免费在线观看 | 涩情主播在线翻车 | 99精品影视 | 免费视频一级片 | 东方影库四虎 | 金牛网155755水心论坛黄大父母 | 青青草99热这里都是精品 | 久久99国产亚洲高清观着 | 国产乱插 | 国产精品久久久 | 国产美女亚洲精品久久久综合91 | 99国产小视频 | 免费看一级 | 免费精品99久久国产综合精品 | 亚州日韩精品AV片无码中文 | 欧美乱码视频 | 国产专区日韩精品欧美色 | 国产99视频精品免费视频免里 | 成人在线视频在线观看 | 免费人成在线观看视频播放 | 大学生宿舍飞机 free | 精品欧美一区二区三区久久久 | 亚洲精品久久久久AV无码 | 欧美穿高跟鞋做爰 | 久青草国产观看在线视频 | 爽好紧别夹宝贝叫大声点护士 | 天天干天天爽天天操 | 法国老妇性xx在线播放 |