正则表达(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. Android菜单

    Android菜单概述 菜单是Activity的一个重要组成部分,它为用户操作提供了快捷的途径.Android提供了一个简单的框架来向程序中添加标准菜单 . 一.创建一个菜单资源 你需要在一个XML ...

  2. msp430项目编程01

    msp430中项目---点阵LED显示 1.点阵LED介绍 2.代码(直接使用引脚驱动) 3.代码(使用芯片驱动) 4.项目总结 msp430项目编程 msp430入门学习

  3. [Bzoj5179][Jsoi2011]任务调度(左偏树)

    5179: [Jsoi2011]任务调度 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 5  Solved: 4[Submit][Status][Di ...

  4. MySQL学习系列之触发器

    触发器简介 触发器作用: 监控某种事件并触发某种动作 触发语法: CREATE TRIGGER trigger_name trigger_event ON tbl_name FOR EACH ROW ...

  5. [转]JS 引擎的执行机制

    转: https://www.cnblogs.com/wancheng7/p/8321418.html ------------------------------------------------ ...

  6. [Bash] View Files and Folders in Bash

    Sometimes when working at the command line, it can be handy to view a file’s contents right in the t ...

  7. Hybrid App适配Android注意点

    近期把做好的ipad HTML5混合应用适配到android上,发现android的webview比 iPad差太多了,android4.4因为升级到chromium.和chrome内核一致,全部问题 ...

  8. poj 1840 哈希

    Eqs Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 14093   Accepted: 6927 Description ...

  9. ASO--简单了解

    ASO是“应用商店优化”的简称.ASO(App Search Optimization)就是提升你APP在各类APP应用商店/市场排行榜和搜索结果排名的过程. 类似普通网站针对搜索引擎的优化,即SEO ...

  10. FMDB中常用SQL使用

    大家工作中,最常用到的无非是 增.删.查.改... 在SQL中对应的语句为:INSERT DELETE SELECT UPDATE 首先,你可以使用一款叫做“sqlite database brows ...