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

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

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

服務器之家 - 腳本之家 - Ruby - 舉例初步講解Ruby中的正則表達式

舉例初步講解Ruby中的正則表達式

2020-04-29 10:27腳本之家 Ruby

這篇文章主要介紹了Ruby中的正則表達式,是Ruby學習進階當中的重要知識,需要的朋友可以參考下

 正則表達式是一個特殊的字符序列可以幫助匹配或者找到其他字符串或串套,使用的模式保持一個專門的語法。

正則表達式文本是一個模式之間的斜線之間或任意分隔符 %r 如下:
語法:

 

復制代碼 代碼如下:
/pattern/
/pattern/im    # option can be specified
%r!/usr/local! # general delimited regular expression

 

例如:

?
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/ruby
 
line1 = "Cats are smarter than dogs";
line2 = "Dogs also like meat";
 
if ( line1 =~ /Cats(.*)/ )
 puts "Line1 starts with Cats"
end
if ( line2 =~ /Cats(.*)/ )
 puts "Line2 starts with Dogs"
end

這將產生以下結果:

?
1
Line1 starts with Cats

正則表達式修飾符:

正則表達式的文字可以包括一個可選的修飾符來控制各方面的匹配。修改指定第二個斜杠字符后,如前面所示,可表示為這些字符之一:

舉例初步講解Ruby中的正則表達式

 %Q分隔字符串文字一樣,Ruby允許正則表達式帶 %r,然后由所選擇的定界符。這是非常有用的,當所描述的模式中包含正斜杠字符不希望轉義:

?
1
2
3
4
5
# Following matches a single slash character, no escape required
%r|/|       
 
# Flag characters are allowed with this syntax, too
%r[</(.*)>]i

正則表達式模式:

除控制字符, (+ ? . * ^ $ ( ) [ ] { } | ), 所有字符匹配。可以轉義控制字符前面加上反斜線。

 搜索和替換:

String方法最重要的,使用正則表達式sub 和 gsub,他們就地變種sub! 和 gsub!

所有這些方法執行搜索和替換操作過程中使用一個正則表達式模式。sub & sub!替換第一次出現的模式 gsub & gsub!替換所有出現。

sub! 和 gsub! 返回一個新的字符串,未經修改的原始 sub 和 gsub 他們被稱為修改字符串。

下面的例子:

?
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/ruby
 
phone = "2004-959-559 #This is Phone Number"
 
# Delete Ruby-style comments
phone = phone.sub!(/#.*$/, "") 
puts "Phone Num : #{phone}"
 
# Remove anything other than digits
phone = phone.gsub!(/D/, ""
puts "Phone Num : #{phone}"

這將產生以下結果:

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

下面是另一個例子:

?
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/ruby
 
text = "rails are rails, really good Ruby on Rails"
 
# Change "rails" to "Rails" throughout
text.gsub!("rails", "Rails")
 
# Capitalize the word "Rails" throughout
text.gsub!(/rails/, "Rails")
 
puts "#{text}"

這將產生以下結果:

?
1
Rails are Rails, really good Ruby on Rails

 

延伸 · 閱讀

精彩推薦
  • RubyRuby設計模式編程中使用Builder建造者模式的實例

    Ruby設計模式編程中使用Builder建造者模式的實例

    這篇文章主要介紹了Ruby設計模式編程中使用Builder建造者模式的實例,建造者模式將一個復雜對象的構造與它的表示分離,使同樣的構建過程可以創建不同的表...

    范孝鵬2192020-05-07
  • Ruby簡要說明Ruby中的迭代器

    簡要說明Ruby中的迭代器

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

    goldensun2772020-04-25
  • RubyRuby環境下安裝使用bundler來管理多版本的gem

    Ruby環境下安裝使用bundler來管理多版本的gem

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

    日拱一卒4332020-05-10
  • RubyRuby簡潔學習筆記(一):字符串、數字、類和對象

    Ruby簡潔學習筆記(一):字符串、數字、類和對象

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

    腳本之家2472020-04-20
  • RubyCentOS中配置Ruby on Rails環境

    CentOS中配置Ruby on Rails環境

    經過一個上午的折騰,終于把ROR環境在CentOS中搞定,繞了很多彎路,把文章寫下來總結一下 ...

    可樂加糖4762020-04-12
  • RubyRuby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼,數據是隨機的,所以每次的記錄都會不同。 ...

    ruby教程網2962020-04-10
  • Ruby剖析 Ruby 訪問控制

    剖析 Ruby 訪問控制

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

    ruby教程網3572020-04-08
  • RubyRuby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

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

    腳本之家4782020-04-20
主站蜘蛛池模板: 91国产在线观看 | 毛片大全免费看 | 国产在线步兵一区二区三区 | 四虎comwww最新地址 | 99免费在线视频 | 国产视频一区二 | 99久久精品国产片久人 | 范冰冰上面好大下面好紧 | 精品无码久久久久久久久 | 777奇米影视一区二区三区 | 国产精品成人免费观看 | 美日韩在线观看 | 亚洲狠狠婷婷综合久久蜜桃 | 国产精品国色综合久久 | sihu国产午夜精品一区二区三区 | 999热这里全都是精品 | 国产亚洲欧美日韩综合综合二区 | 把美女屁股眼扒开图片 | 欧美xxxxx九色视频免费观看 | 99精品视频在线观看免费 | 亚洲瑟瑟网 | 亚洲成在人线久久综合 | 欧美整片在线 | 成品人视频w免费观看w | 被强迫变性翘秘书 | 日韩欧美一区二区三区免费观看 | 韩国三级2020 | 我与肥熟老妇的性事 | 精品在线免费播放 | 精品久久久久久影院免费 | 亚洲国产成人久久综合一 | 52av我爱avhaose01好 | 暖暖视频日本 | 成人无高清96免费 | 黑人粗长巨茎小说 | 白丝校花被扒开双腿喷水小说 | 久久一本综合 | 亚洲精品乱码久久久久久蜜桃图片 | 久青草国产97香蕉在线视频 | 天天综合天天综合 | 久久囯产精品777蜜桃传媒 |