Ruby - 正则表达式

Ruby - 正则表达式 首页 / Ruby入门教程 / Ruby - 正则表达式

正则表达式是特殊的字符序列,可帮助您使用模式中保留的特殊语法来匹配或查找其他字符串或字符串集。

正则表达式文字是斜线之间或任意定界符之间的模式,后跟%r,如下所示-

正则语法

/pattern/
/pattern/im    # option can be specified
%r!/usr/local! # general delimited regular expression

示例

#!/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

正则修饰符

正则表达式文字可以包括可选的修饰符,以控制匹配的各个方面。

Sr.No.Remark
1

i

匹配文本时忽略大小写。

2

o

仅在第一次判断regexp文字时执行一次#{}插值。

链接:https://www.learnfk.comhttps://www.learnfk.com/ruby/ruby-regular-expressions.html

来源:LearnFk无涯教程网

3

x

忽略空格,并允许使用正则表达式进行注释。

4

m

匹配多行,将换行符识别为普通字符。

5

u,e,s,n

将正则表达式解释为Unicode(UTF-8),EUC,SJIS或ASCII。如果未指定这些修饰符,则假定正则表达式使用源编码。

就像用%Q分隔的字符串文字一样,Ruby允许您以%r开头正则表达式,后跟您选择的分隔符。当您描述的模式包含许多不想转义的正斜杠字符时,这很有用-

# Following matches a single slash character, no escape required
%r|/|

# Flag characters are allowed with this syntax, too
%r[</(.*)>]i

正则表达模式

除控制字符(+?。* ^&dollar;()[] {} |\)外,所有字符均匹配。 您可以在控制字符前加反斜杠来对其进行转义。

搜索和替换

使用正则表达式的一些最重要的String方法是 sub 和 gsub ,以及它们的变体 sub!和 gsub !。

sub 和 gsub 返回一个新字符串,保留原始字符串不变,其中 sub!和 gsub!修改调用它们的字符串。

无涯教程网

#!/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}"

这将产生以下输出-

Phone Num : 2004-959-559
Phone Num : 2004959559

以下是另一个示例-

#!/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!(/\brails\b/, "Rails")
puts "#{text}"

这将产生以下输出-

Rails are Rails, really good Ruby on Rails

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

AI技术内参 -〔洪亮劼〕

微服务架构核心20讲 -〔杨波〕

Linux性能优化实战 -〔倪朋飞〕

从0开始做增长 -〔刘津〕

深入拆解Tomcat & Jetty -〔李号双〕

实用密码学 -〔范学雷〕

手把手教你玩音乐 -〔邓柯〕

计算机基础实战课 -〔彭东〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

好记忆不如烂笔头。留下您的足迹吧 :)