一步一步学Ruby(十):Ruby正则表达式(下)

简介:

本文内容:

  • 贪婪量词和不贪婪量词
  • 前视断言
  • 修饰语
  • 正则与字符串的转换
  • 正则表达式常用的地方

一、贪婪量词和不贪婪量词

量词*(零个或多个)和+(一个或多个)是贪婪的,它们会匹配尽可能多的字符,我们可以在*和+后面加一个?,使它成为非贪婪量词

下面代码是: 1个或多个字符后接一个感叹号。

image

二、锚

锚是指必须满座一定的条件,才能继续匹配

^     行首

$     行尾

\A   字符串的开始

\z    字符串的结尾

\Z    字符串的结尾(不包括最后的换行符)

\b    单词边界

示例:

image

下面演示我们用正则取出注释的内容

image

image

image

 

三、前视断言

前视断言表示想要知道下一个指定的是什么,但并不匹配

1. 肯定的前视断言(?=)

假设我们想要匹配一个数的序列,该序列以一个圆点结束,但并不想把圆点作为模式匹配的一部分

image

2. 否定的前视断言(?!)

image

四、修饰语

修饰语位于正则表达式最结束正则表达式的正斜杠的后面

1. i  使正则表达式对大小写不敏感

image

2. m 使得正则表达式可以和任何字符匹配,包括换行符,通常情况下圆点通配符不匹配换行符

image

五、字符串与正则表达式的相互转换

1. 字符串内插进正则表达式

image

2.正则表达式转换成字符串

image

六、使用正则表达式的常见方法

image

image

还有sub/sub!和gsub/gsub!, grep这些也常用到正则表达式.

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2009/02/03/1383505.html如需转载请自行联系原作者


王德水

相关文章
|
7月前
|
Ruby
|
4月前
|
Ruby
探索深究Ruby 正则表达式
【8月更文挑战第30天】
33 1
|
4月前
|
开发者 Ruby
Ruby正则表达式的奥秘:如何用简单的语法构建强大的文本匹配与处理工具?
【8月更文挑战第31天】正则表达式是文本匹配的强大工具,通过简单模式即可实现复杂文本处理。作为动态、面向对象的语言,Ruby提供了全面的正则表达式支持,涵盖创建、匹配、替换及分割等功能。本文通过示例代码介绍如何在Ruby中使用正则表达式进行文本匹配,并分享了编写正则表达式的最佳实践,帮助开发者提升文本处理效率与准确性,更好地利用这一工具构建高效系统。
40 0
|
7月前
|
Ruby
|
7月前
|
Ruby
|
Ruby 索引
【Ruby on Rails全栈课程】2.5 正则表达式
1、正则表达式(Regexp) 正则表达式是对字符串操作的公式,用来过滤字符串或者从字符串中匹配出我们需要的字符,在各类语言中都有应用
126 0
【Ruby on Rails全栈课程】2.5 正则表达式
Rubular: 基于 Web 的 Ruby 正则表达式编辑器
当我们在 Ruby 项目中使用正则表达式时,如果想要即刻看到该正则的匹配结果,似乎除了跑代码外别无他法。假如匹配有误,我们必须回头重新修订正则表达式。如此周而复始,不仅效率低下,而且费时不少。如果我们利用Rubular 这个基于 Web 的 Ruby正则表达式编辑器,则问题迎刃而解。
525 0
Rubular: 基于 Web 的 Ruby 正则表达式编辑器
ruby的正则表达式操作(1)
ruby语言中用~/字符/来匹配表达式,$`得到匹配之前的那部分字符串,$'得到匹配之后的字符串,$&得到匹配到的字符串,如下所示 def show_regexp(a,re)    if a=~re        puts "#{$`}#{$'}"    else        puts "no ...
708 0
|
Ruby 移动开发
ruby的正则表达式操作(2)
ruby的正则表达式中的字符类缩写 字符      是         含义 \d                [0-9]                   数字字符 \D                [^0-9]                     除数字之外的任何字符 \s  ...
684 0