詳細介紹Ruby中的Regex_python

來源:互聯網
上載者:User

Regex是一種特殊序列的字元,它通過使用有專門文法的模式來匹配或尋找其他字串或字串集合。
文法

Regex從字面上看是一種介於斜杠之間或介於跟在 %r 後的任意分隔字元之間的模式,如下所示:

/pattern//pattern/im  # 可以指定選項%r!/usr/local! # 一般的分隔的Regex執行個體#!/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

Regex修飾符

Regex從字面上看可能包含一個可選的修飾符,用於控制各方面的匹配。修飾符在第二個斜杠字元後指定,如上面執行個體所示。下標列出了 可能的修飾符:

就像字串通過 %Q 進行分隔一樣,Ruby 允許您以 %r 作為Regex的開頭,後面跟著任意分隔字元。這在描述包含大量您不想轉義的斜杠字元時非常有用。

# 下面匹配單個斜杠字元,不轉義%r|/|        # Flag 字元可通過下面的文法進行匹配%r[</(.*)>]i 

Regex模式

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

下表列出了 Ruby 中可用的Regex文法。

搜尋和替換

sub 和 gsub 及它們的替代變數 sub! 和 gsub! 是使用Regex時重要的字串方法。

所有這些方法都是使用Regex模式執行搜尋與替換操作。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 = phone.gsub!(/\D/, "")  puts "Phone Num : #{phone}"

這將產生以下結果:

Phone Num : 2004-959-559Phone 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}"

這將產生以下結果:

Rails are Rails, really good Ruby on Rails

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.