首頁 後端開發 Python教學 详细介绍Ruby中的正则表达式

详细介绍Ruby中的正则表达式

Jun 10, 2016 pm 03:15 PM
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
登入後複製

这将产生以下结果:

Line1 contains Cats
登入後複製

正则表达式修饰符

正则表达式从字面上看可能包含一个可选的修饰符,用于控制各方面的匹配。修饰符在第二个斜杠字符后指定,如上面实例所示。下标列出了 可能的修饰符:

201541093958504.jpg (982×274)

就像字符串通过 %Q 进行分隔一样,Ruby 允许您以 %r 作为正则表达式的开头,后面跟着任意分隔符。这在描述包含大量您不想转义的斜杠字符时非常有用。

# 下面匹配单个斜杠字符,不转义


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

登入後複製

正则表达式模式

除了控制字符,(+ ? . * ^ $ ( ) [ ] { } | \),其他所有字符都匹配本身。您可以通过在控制字符前放置一个反斜杠来对控制字符进行转义。

下表列出了 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! 是使用正则表达式时重要的字符串方法。

所有这些方法都是使用正则表达式模式执行搜索与替换操作。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-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}"
登入後複製

这将产生以下结果:

Rails are Rails, really good Ruby on Rails
登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

深入分析 Golang 與 Ruby 的異同 深入分析 Golang 與 Ruby 的異同 Jun 01, 2024 pm 08:46 PM

Go與Ruby的主要區別在於:Go是一種靜態類型編譯語言,支援輕量級並行和高效記憶體管理,適合編寫高並發應用程式;Ruby是一種動態類型解釋語言,支援真正的平行但記憶體管理需手動控制,適合編寫靈活的Web應用程式。

Ruby怎麼使用Mysql2連接操作MySQL Ruby怎麼使用Mysql2連接操作MySQL Apr 17, 2023 pm 10:07 PM

Ruby操作MySQL使用mysql2連接mysql並操作mysql。 geminstallmysql2連接mysql建立連線:require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',username:'root',password:'P@ssword1!'})接受的連線選項包括: Mysql2::Clie

為什麼 Python、Ruby 等語言棄用了自增運算子? 為什麼 Python、Ruby 等語言棄用了自增運算子? May 11, 2023 pm 04:37 PM

許多人或許會注意到一個現象,那就是在一些現代程式語言(當然,並不是指「最近出現」的程式語言)中,自增和自減運算子被取消了。也就是說,在這些語言中不存在i++i​​n或這樣的表達,而是只存在i+=1j-=1這樣的表達方式了。本回答將從設計哲學這個角度探討這現象所產生的背景與原因。嚴格來說,說"i++正在消失"也許有失偏頗,因為主流程式語言中似乎只有Python、Rust和Swift不支援自增自減運算子。當我第一次接觸Python時,這也

如何使用MySQL和Ruby實作一個簡單的資料轉換功能 如何使用MySQL和Ruby實作一個簡單的資料轉換功能 Sep 21, 2023 am 08:07 AM

如何使用MySQL和Ruby實作一個簡單的資料轉換功能在實際的開發工作中,經常需要進行資料轉換,將一個資料格式轉換為另一個資料格式。本文將介紹如何使用MySQL和Ruby來實作一個簡單的資料轉換功能,並提供具體的程式碼範例。首先,我們需要安裝並設定MySQL和Ruby環境。確保已經安裝了MySQL資料庫,並可以透過​​命令列或其他工具連接到資料庫。另外,需要安裝

如何使用MySQL和Ruby實作一個簡單的非同步任務排程功能 如何使用MySQL和Ruby實作一個簡單的非同步任務排程功能 Sep 20, 2023 am 10:48 AM

如何使用MySQL和Ruby實作一個簡單的非同步任務排程功能先前的Web應用程式大多採用同步的方式來處理請求,也就是用戶發送請求後,伺服器會立即處理完請求並傳回結果。然而,隨著應用程式複雜度的增加,同步方式的處理效率逐漸變得低下,因此非同步任務調度成為了現代Web應用程式中常見的需求。本文將介紹如何使用MySQL和Ruby來實作一個簡單的非同步任務排程功能,包括任務的

如何使用MySQL和Ruby實作一個簡單的資料查詢分析功能 如何使用MySQL和Ruby實作一個簡單的資料查詢分析功能 Sep 21, 2023 pm 04:36 PM

如何使用MySQL和Ruby實作一個簡單的資料查詢分析功能在當今大數據時代,資料分析已經成為了許多領域中不可或缺的一部分。而在進行資料分析時,最常見的操作就是進行資料查詢。本文將介紹如何使用MySQL和Ruby程式語言來實作一個簡單的資料查詢分析功能,並且給出具體的程式碼範例。首先,我們需要安裝MySQL和Ruby的開發環境。 MySQL是一個開源的關聯式資料庫

如何使用MySQL和Ruby實作一個簡單的資料分析報表功能 如何使用MySQL和Ruby實作一個簡單的資料分析報表功能 Sep 20, 2023 pm 05:09 PM

如何使用MySQL和Ruby實作一個簡單的資料分析報表功能引言:在當今資料驅動的時代,資料分析對於企業的決策和發展起到了至關重要的作用。而資料分析報表作為資料分析的重要組成部分,對於資料進行整理、視覺化和解讀具有重要意義。本文將介紹如何使用MySQL和Ruby來實作一個簡單的資料分析報表功能,並提供對應的程式碼範例。一、資料庫設計與建表要實現資料分析報表功能

Redis在Ruby開發中的應用:如何快取複雜資料結構 Redis在Ruby開發中的應用:如何快取複雜資料結構 Jul 30, 2023 pm 08:58 PM

Redis在Ruby開發中的應用:如何快取複雜資料結構概述:Redis是一種高效能的鍵值儲存系統,被廣泛應用於快取資料和暫存。在Ruby開發中,我們可以使用Redis來快取複雜資料結構,進而提高系統的效能和反應速度。本文將介紹如何在Ruby中使用Redis快取複雜資料結構,並提供程式碼範例。背景:在開發過程中,我們經常遇到需要處理複雜資料結構的情況。例如,

See all articles