问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Ruby语言,使用正则表达式提出一段文字中所有满足条件的字符串。

发布网友 发布时间:2022-04-18 22:58

我来回答

2个回答

懂视网 时间:2022-04-19 03:19

正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹配或查找其他字符串或字符串集合。
语法

正则表达式从字面上看是一种介于斜杠之间或介于跟在 %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!(/rails/, "Rails")
 
puts "#{text}"

这将产生以下结果:

Rails are Rails, really good Ruby on Rails

热心网友 时间:2022-04-19 00:27

\s表示空白字符。包括,空格,制表符等“”只表示空格。\s+可匹配至少一个空白字符。[]+只表示多个空格。追问话说回来,您看懂我的提问了么?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
社保到期了还有时效吗 2023年河北退休人员认证时间 社保待遇资格认证有效期怎么认证 ...语法How long does it take you to get to school? 此句中“it... 海信电视初始设置后无信号 设置海信电视恢复出厂设置搜不到电视信号 海信一族电视大锅恢复设置没信号怎么? 如何用c程序读取txt文件? 成都膨胀螺丝型号 云南农信个人如何开通手机银行 数学期末试卷(七年级上册北师大版) 梦见一个小男孩大概5岁多一直跟着我走,甩都甩不掉 七年级上学期数学北师大版期末试卷 在线看视频,几分钟之后就黑屏 免费的初一数学上册北师大版试卷 《33分钟侦探》免费在线观看完整版高清,求百度网盘资源 在线看视频,为什么断网后还能继续播放几分钟? 求 四分钟 Vier Minuten 百度云免费在线观看资源 请问,黄油可以干煮吗,不放水就那么煮会煮成沸腾的么? 跪求88分钟 百度云免费在线观看资源 怎样简单的令歌曲降调,就像K歌房的一样? 在线电影播放几分钟就卡住不动了!急!!! ruby 正则表达式的问题 Ruby正则表达式 - 一个表达式给各分组替换不同内容 在Microsoft Office Word 2003中,页眉上打了字,但想把页眉线去掉怎么去 谁知道word中页眉怎么去掉 WORD文档,页眉下的黑线如何去掉!来高手! 教育学心理学一般有哪些常见的问答题 WORD文档里我插入一张图片做页眉,可是我要怎么去掉页眉的 下划线了 ?求助下WORD高手!!! word 2010 中编辑页眉时 编辑好了发现每页都有,我只想本页有 怎么设置啊 还有如何让页眉的文字有阴影的感 大众捷达更换刹车油多长时间? 大众捷达多久更换刹车油? 大众捷达刹车油多久更换 捷达车防冻液、刹车油、助力油、变速箱油更换周期是多少? 05款手动档捷达多长时间换变速箱油,刹车油,防冻液 QQ里的系统信息 索尼a7r4怎么操作能变半画幅使用? 索尼a7r3实时取景怎么用 求一下这张图高清原版 关于正版图片的认知 求张图片的原版最高清图。 求此图片清晰版! 求 竞选学生会组织部演讲稿 《要组织部》 长沙的神舟笔记本专卖店在哪 神舟笔记本长沙售后服务站在哪 神舟笔记本在长沙最大的实体店在国储的几号啊?具体点。谢谢。 神舟笔记本湖南总代理 ruby 判断范围 买神舟笔记本发票问题 在长沙医学院附近哪个神舟电脑城最近