正则表达(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. Codeforces 513G1 513G2 Inversions problem [概率dp]

    转自九野:http://blog.csdn.net/qq574857122/article/details/43643135 题目链接:点击打开链接 题意: 给定n ,k 下面n个数表示有一个n的排列 ...

  2. jmeter的master远程运行和停止slave

    jmeter可以部署成master-slave或者叫client-server模式,一个master(client)可以同时控制多个slave(server). 在linux系统下,master(cl ...

  3. 还原数据库出现“未获得排他訪问”解决方法(杀死数据库连接的存储过程sqlserver)

    在master数据库下创建存储步骤例如以下: createproc killspid (@dbnamevarchar(20)) as begin declare@sqlnvarchar(500) de ...

  4. Meteor教程

    Meteor 是一个构建在 Node.js 之上的平台,用来开发实时网页程序.Meteor 程序位于数据库和用户界面之间,保持二者之间的数据同步更新. 因为 Meteor 是基于 Node.js 开发 ...

  5. php monolog 的写日志到unix domain socket 测试终于成功

    在另外一个客户端执行 php s.php后, 通过nc -lU /tmp/tg.sck 建立的unix domain socket 有接收到消息. <?php require 'vendor/a ...

  6. php 获取TZ时间格式

    php将时间格式化成T Z的方法 gmdate("c") 这个函数的用法,学会了吧!!! <?php var_dump(gmdate("c")); ini ...

  7. Ulua_toLua_基本案例(一)

    Ulua_toLua_基本案例 在Untiy中用Lua.必需要LuaInterface.LuaInterface的介绍请看:点击打开链接 能够先光写Lua,生成.lua的纯文件.再Unity中通过,l ...

  8. LUA协程复用

    -----协程复用根函数 local function routine(fun, args) while (fun) do fun, args = coroutine.yield(fun(table. ...

  9. Django:视图和URL配置

    一.视图      1.在mysite文件夹下.创建views.py文件(文件名称没有特别的要求): from django.http import HttpResponse def hello(re ...

  10. Linux(Ubuntu14.04)下Google Chrome / Chromium标题栏乱码问题

    注:我使用的Linux发行版是Ubuntu 14.04,不同Linux发行版可能会有不同. 最近在使用Chromium的时候tab的标题栏中文显示乱码,在地址栏输入中文是同样时乱码,就像下图: 看起来 ...