正则表达(Regexp)类

更新:2017/06/18 改变[]集合的表格大小 80% ---》 100%

 定义 正则表达: 和字符串匹配的模式(pattern)的写法
正则表达(Regexp)类: 保存正则表达的类
 生成
 直接生成  /.../
里面带/时,%r(...)
 标准生成  Regexp.new("...")
   
   
   
   
   
   
   
   

 匹配  =~, !~
 a = /.../
 a =~ "this is a target to matching"
 注: 默认不匹配改行符
 匹配模式
 pattern
 /ABC/  只有英文与数字为检查是否存在
 /^ABC$/  匹配完全一样的
 这里是"ABC"
/[^0-9]../   首字母非数字的三字符
 /^...$/  和三字母的行匹配
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

 元字符
 matacharacter
 ^  行开头处开始匹配
 $  行结尾处开始匹配
 \A  字符串开头 
 \Z  字符串结尾
 忽略最后的\n(一个)
 \z不忽略
 []

 指定范围, 可用 -
 [AB], [ABC], [01A]
 [A-Z]
 [A-Za-z]
 [0-9]
 想指定"-"必须放开头或者结尾
 [-...]
 [...-]
 [^...]  
 除去指定的
 
 
 
 .  任意的一个
 \s  空格,指标(tab,\t),换行
 \d  数字
 \w  英语和数字
 \[
 \^
...
 把后面的当做字符
 用于非字母的元字符
 相当于[^]等 
 重复

 *  0次以上
 *? 最短 
 +  1次以上
 +? 最短
 ?  0或1次
 {n}  n次
 {n, m}  n~m次

可以带括号指定多项重复

 (ABC|CBA)  或逻辑
 ()  获取得到的字符串
 只是为了加限制的话(?:)
   
   
   
   
   
   
   

 方法

 所有元字符变引用  Regexp.quote("^^^^^")
 Regexp.escape("^^^^^")
 置换
字符串方法
 str.sub(/.../, "....")
 str.sub!(/.../, "....")
 str.gsub(/.../, "....")
 str.gsub!(/.../, "....")
 sub()置换找到的第一个,
 gsub()置换全部
 读取  str.scan(/.(.)./) do |temp|
   ...
 end
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 可选设定

 /.../i    
Regexp::IGNORECASE
 不区别大小
 /.../x  
 Regexp::EXTENDED
 无视空白和#
 /.../m 
 Regexp::MULTILINE
 匹配\n
 /.../o   
 
   
 获取匹配部分  记法: mix

 $1, $2,...  /(...)(...)(...)/对应获取
 $'  匹配到位置前的部分
 $&  所有匹配部分
 /(ABC).*(ABC)/
 ABC........ABC
 &'  匹配后部分
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

Ruby Regexp类的更多相关文章

  1. js正则表达式replace里有变量的解决方法用到RegExp类

    一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...

  2. 雷林鹏分享:Ruby Dir 类和方法

    Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1 ...

  3. 雷林鹏分享:Ruby File 类和方法

    Ruby File 类和方法 File 表示一个连接到普通文件的 stdio 对象.open 为普通文件返回该类的一个实例. 类方法 序号方法 & 描述 1File::atime( path) ...

  4. Ruby Regexp

    创建正则表达式对象 #以大写字母开始后面紧跟N个数字,方式一 reg = /[A-Z]\d+/ #方式二 reg = Regexp.new("[A-Z]\d+") reg = Re ...

  5. Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类

    Ruby和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象.1.构造方法使用双引号是字符串的字面构造方法,也可以使用“具名构造方法”,即在类名上调用new方法 >> s=& ...

  6. objective-c中类似ruby枚举类的实例方法

    虽然obj-c的语法格式略显繁琐,但它和ruby都从某些方面继承了smalltalk的某些动态的东西.这些东西是 C和C++之类的静态语言所不曾有的. 比如ruby中可以将一个类或对象的所有方法枚举出 ...

  7. RegExp类型和text()方法

    ECMAScript通过RegExp类型来支持正则表达式 RegExp 实例方法:text() 它接受一个字符串参数,在模式与该参数匹配的情况下返回true,否则返回false,通常用在if语句中 / ...

  8. RUBY的类封装,继承,多态简单演示

    class Person def initialize(name,age=18) @name=name @age=age @motherland="China" end def t ...

  9. ruby File类

    类方法 路径相关: File.basename(filename <, suffix>) -> string返回给定文件名 filename 的最后一部分.如果有 suffix 参数 ...

随机推荐

  1. 快速让你明白Objective-C的语法(和Java、C++对比)

    很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头疼,Objective-C的代码在语法上和Java, C++有着很大的区别,有 ...

  2. Python学习之-- IO 操作

    阻塞IO / 非阻塞IO /IO多路复用 / 异步IO 说明:同步IO包含(阻塞IO / 非阻塞IO /IO多路复用),因为他们有个共同特性就是都需要内核态到用户态的一个等待. 基本概念解释,环境限定 ...

  3. 【Nginx】负载均衡

    本文介绍的负载均衡是针对的客户端请求在多个Nginx进程之间的均衡.注意与客户端请求在多个后端服务器之间的均衡相区别. 负载均衡问题的产生 在nginx中,建立连接的时候,会设计负载均衡问题.在多个子 ...

  4. [Typescript] Specify Exact Values with TypeScript’s Literal Types

    A literal type is a type that represents exactly one value, e.g. one specific string or number. You ...

  5. win8系统 重装系统如何删除EFI分区

    在PE下(一般重装系统就是在PE下),依次输入如下命令(注意虽然显示的是中文名"磁盘0",但是还是用英文disk 0) list disk select disk 0 clean

  6. Android KK后为何工厂模式下无法adb 无法重新启动机器 ?

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  7. XxPay支付系统-boot版本 使用

    https://segmentfault.com/a/1190000016987391?utm_source=tag-newest 有三个版本: spring boot 版本: spring clou ...

  8. Oracle 模糊查询方法

           在这个信息量剧增的时代,怎样帮助用户从海量数据中检索到想要的数据.模糊查询是不可缺少的. 那么在Oracle中模糊查询是怎样实现的呢?   一.我们能够在where子句中使用likeke ...

  9. Eclipse:Some sites could not be found. See the error log for more detail.解决的方法

    今天遇到了一个奇葩的问题.我把我的sdk tools的版本号升级到23后.我在eclipse中尝试升级ADT,发现了这么一个问题,以下分析下原因: 当我在eclipse中选择Help-->Che ...

  10. C语言 字符串操作 笔记

    /* C语言字符串的操作笔记 使用代码和注释结合方式记录 */ # include <stdio.h> # include <string.h> int main(void) ...