先推荐一个在线的Ruby正则表达式编辑器http://www.rubular.com/
Ruby的正则表达式以"//"作为构造方法。表达式返回一个RegExp的对象。
一般规则:
/a/匹配字符a。
/\?/匹配特殊字符?。特殊字符包括^, $, ? , ., /, \, [, ], {, }, (, ), +, *.
.匹配任意字符,例如/a./匹配ab和ac。
/[ab]c/匹配ac和bc,[]之间代表范围。例如:/[a-z]/ , /[a-zA-Z0-9]/。
/[^a-zA-Z0-9]/匹配不在该范围内的字符串。
/[\d]/代表任意数字
/[\w]/代表任意字母,数字或者_
/[\s]/代表空白字符,包括空格,TAB和换行。
/[\D]/,/[\W]/,/[\S]/均为上述的否定情况。
高级规则:
?代表0或1个字符。/Mrs?\.?/匹配"Mr","Mrs","Mr.","Mrs."。
*代表0或多个字符。/Hello*/匹配"Hello","HelloJack"。
+代表1或多个字符。/a+c/匹配:"abc","abbdrec"等等。
/d{3}/匹配3个数字。
/d{1,10}/匹配1-10个数字。
/d{3,}/匹配3个数字以上。
/([A-Z]\d){5}/匹配首位是大写字母,后面4个是数字的字符串。
下图匹配的是:M后面是字符r, 后面是0或1个字符s, 在后面是0或1个字符"." , 匹配Mr、Mrs、Mr.、Mrs.
下面可以匹配</p>, </ p>,</p >,< /p>.
正则表达式操作
String和RegExp均支持=~和match 2个查询匹配方法
可以看出,如果能够匹配,=~返回匹配的字符串位置,而match返回一个MatchData对象。如果不匹配返回nil。
MatchData可以取出其中符合各个子匹配的内容。看下面的例子:
m[0]返回匹配主表达式的字符串
下面的方法是等同的:
m[n] == m.captures[n]
Ruby也自动的为我们填写了一些全局变量,它们以数字做名: $1,$2,等等,$1包含的是正则表达式中从左侧开始的第一对小括号内的子模式所匹配的字符串
本文作者: 王德水
发表评论
-
一步一步学Ruby(十九): Hash
2009-05-06 09:39 1228一、Hash的定义和赋值 Hash代表键值对的集合,Ru ... -
一步一步学Ruby(十八):数组
2009-05-06 09:39 1019一、数组定义和基本操作 1. 数组的定义和其它 ... -
一步一步学Ruby(十七):Ruby动态特性
2009-05-06 09:37 1382Ruby中的一切都是动态的 ... -
一步一步学Ruby(十六):符号
2009-05-06 09:34 1001一、符号的定义 符号是Ruby内建类Symbol的实例, ... -
一步一步学Ruby(十五):错误处理和异常
2009-05-06 09:33 1003一、常见异常 异常名 常见原因 怎样抛出 ... -
一步一步学Ruby(十四): self和作用域
2009-05-06 09:32 1177一、默认对象或当前对象是self 为了知道哪个对象是当前 ... -
一步一步学Ruby(十三):Ruby模块
2009-05-06 09:31 1206Class类是Module的子类,类是一种特殊形式的模块,这个 ... -
一步一步学Ruby(十二):Ruby类
2009-05-06 09:30 1070一、类的定义、类的实例方法 二、特定对象的方法 ... -
一步一步学Ruby(十一):控制语句
2009-05-06 09:14 989一、比较语句 大部分和其他的语言一样,这里注意<= ... -
一步一步学Ruby(十):Ruby正则表达式(下)
2009-05-06 09:08 2832本文内容: 贪婪量词和不贪婪量词 锚 前视断言 ... -
一步一步学Ruby(八):字符串表达式
2009-05-06 09:03 1258Ruby中,内置很多对字符串操作的方法,下面我们看看最主要的一 ... -
一步一步学Ruby(七):数学表达式
2009-05-06 09:02 918我们知道,在计算机的最底层,是完全基于数据的,我们编写程序,就 ... -
一步一步学Ruby(六):方法定义及调用
2009-05-06 09:01 849一、方法定义 过程式方法 Ruby虽 ... -
一步一步学Ruby(五): Class, Module, Object,Kernel的关系
2009-05-06 09:01 12471. Class, Module, Object,Kernel ... -
一步一步学Ruby(四):Ruby标准类型
2009-05-06 09:00 1015Ruby 的标准类型包括数字(Numeric)、字符串(Str ... -
一步一步学Ruby(三): Ruby代码注释
2009-05-06 08:59 2187本文内容 单行注释 多行注释 特殊处理 ... -
一步一步学Ruby(二):变量,常量
2009-05-06 08:57 1236本文内容 变量 变量范围 伪变量 常量 ... -
一步一步学Ruby(一): Ruby介绍
2009-05-06 08:56 1587文章摘要 Ruby是如何来的 准备 ...
相关推荐
1. 编译正则表达式:使用re模块的compile函数将正则表达式编译成一个模式对象。 2. 匹配字符串:使用模式对象的match或search函数将正则表达式应用于字符串。 3. 提取匹配结果:使用group函数或groups函数提取匹配...
### 正则表达式的全面掌握 #### 一、正则表达式概述 正则表达式是一种功能强大的文本处理工具,可以用于在各种编程语言中进行数据的搜索、替换以及提取等操作。它作为一种标准特性已经广泛应用于多种流行的语言与...
RubyRegex是Ruby中很好的正则表达式集合 常用表达 RubyRegex::Url RubyRegex::Domain RubyRegex::Email RubyRegex::Username RubyRegex::USSocialSecurity RubyRegex::GeneralPostalCode RubyRegex::ZIPCode ...
综上所述,《掌控正则表达式:第三版》是一本非常值得阅读和收藏的书籍,无论是对于初学者还是经验丰富的开发者来说,都能从中获得宝贵的指导和启示。通过学习本书,读者可以更加熟练地使用正则表达式来简化日常的...
### Ruby正则表达式规则详解 #### 一、引言 在Ruby编程语言中,正则表达式(Regular Expression)是一种强大的文本处理工具,被广泛应用于字符串搜索与替换、数据验证以及模式匹配等场景。本篇文章将深入探讨Ruby...
在多种编程语言中,如Perl、Java、JavaScript、C#、PHP、Python、Ruby、Tcl、MySQL、Oracle等,正则表达式都扮演着重要的角色。 学习正则表达式可以做以下事情: 1. **查找字符串**:你可以使用正则表达式来检查一...
接下来,我们将深入探讨Ruby正则表达式的主要知识点。 ### 一、字符规则 1. **基础字符匹配**:`/a/`会匹配字符`a`。 2. **字符集**:`/[\d]/`匹配任意数字;`/[\w]/`匹配任何字母、数字或下划线;`/[\s]/`匹配...
js_regex,将Ruby正则表达式转换为JavaScript正则表达式。.zip
如今,正则表达式已经成为众多语言及工具--Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)--中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。...
《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域...
《正则表达式经典实例》这本书深入浅出地介绍了正则表达式的基本概念和高级特性,并提供了丰富的实例,覆盖了C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等多种编程语言。 #### 二、核心内容概览 1. *...
同时,为了提高用户体验,可能需要提供一些额外的功能,如支持多个正则表达式、忽略空行或特定行、设置匹配的上下文等。 总的来说,Regex_Reader项目通过Ruby实现了对ASCII文件的正则表达式验证,这对于数据验证、...
OgreKit 是一款为 Cocoa 开发的正则表达式框架,该框架提供了一个与 Ruby 使用的相同的正则表达式引擎与一个高层次的 GUI 查找面板。可以在这里获取源码。 OgreKit 使用 Oniguruma/Onigmo 正则表达式引擎。...
《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础...
Ruby是一种高级的、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)在1995年创建。Ruby语言的设计哲学强调了简洁和生产力,它结合了多种编程范式,包括面向对象、命令式、函数式和过程式...
综上所述,"猫头鹰正则测试工具"RegexBuddy是一个强大的工具,它简化了正则表达式的构建、测试和应用,尤其对跨语言开发者而言,是提高生产力的重要助手。配合提供的"RegexBuddy.exe"可执行文件和"安装说明.txt",...
如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本...