ruby 正则表达式Regexp

http://ruby-doc.org/core-2.1.2/Regexp.html

Regexp

Regexp holds a regular expression, used to match a pattern against strings. Regexps are created using the /.../ and %r{...} literals, and by the Regexp::new constructor.

Regular expressions (regexps) are patterns which describe the contents of a string. They’re used for testing whether a string contains a given pattern, or extracting the portions that match. They are created with the /pat/ and %r{pat} literals or theRegexp.new constructor.

A regexp is usually delimited with forward slashes (/). For example:

/hay/ =~ ‘haystack‘   #=> 0
/y/.match(‘haystack‘) #=> #<MatchData "y">
=~ is Ruby‘s basic pattern-matching operator. When one operand is a regular expression and the other is a string then the regular expression is used as a pattern to match against the string. (This operator is equivalently defined by Regexp and Stringso the order of String and Regexp do not matter. Other classes may have different implementations of =~.) If a match is found, the operator returns index of first match in string, otherwise it returns nil.
/hay/ =~ ‘haystack‘   #=> 0
‘haystack‘ =~ /hay/   #=> 0
/a/   =~ ‘haystack‘   #=> 1
/u/   =~ ‘haystack‘   #=> nil/ay/ =~‘hay‘ #=> 1

=~执行完如果匹配到了,返回第一个匹配位置的index索引值,0在ruby里为true,如果没有匹配到,返回nil,在ruby里,只有nil和false为false.其他的都为true
测试一下:
irb(main):011:0> /hay/ =~ ‘hayaaa‘
=> 0
irb(main):012:0> /hayaaaaa/ =~ ‘hayaaa‘
=> nil
irb(main):013:0> /t/ =~ ‘hayaaa‘
=> nil
irb(main):014:0> p ‘tesdt‘ if 0
"tesdt"
=> "tesdt"

这时候可以写了

app/helpers/packages_helper.rb

def youku_image_url(url)
  /http:\/\// =~ url ? url : "http://r#{rand(4) + 1}.ykimg.com/#{url}"
end

_form.html.erb

<%= image_tag youku_image_url(@package.app_icon), :width => 150 %>

ruby 正则表达式Regexp

时间: 2024-08-08 13:53:11

ruby 正则表达式Regexp的相关文章

ruby 正则表达式

Ruby学习笔记-正则表达式 Posted on 2011-11-29 17:55 Glen He 阅读(4998) 评论(0) 编辑 收藏 1.创建正则表达式 a) reg1 = /^[a-z]*$/ #将模式的定义放在两个正斜杠之间,返回一个Regexp对象 b) reg2 = Regexp.new('^[a-z]*$') #创建一个Regexp对象 c) reg3 = %r{^[a-z]*$} #使用前置的%r 2.匹配正则式: String和Regexp都支持以下两个方法 a) matc

javascript类型系统——正则表达式RegExp类型

× 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法.javascript的RegExp类表示正则表达式,String和RegExp都定义了方法,使用正则表达式可以进行强大的模式匹配和文本检索与替换.本文将介绍正则表达式的RegExp对象,以及正则表达式涉及到的属性和方法 对象 javascript中的正则表达式用RegExp对象表示,有两种写法:一种是字面量写法:另一种是构造函数写法 Perl写法 正则表达式字面

JavaScript -- 时光流逝(六):js中的正则表达式 -- RegExp 对象

JavaScript -- 知识点回顾篇(六):js中的正则表达式 -- RegExp 对象 1. js正则表达式匹配字符之含义 .     查找单个字符,除了换行和行结束符.\w    查找单词字符.\W     查找非单词字符.\d     查找数字.\D     查找非数字字符.\s     查找空白字符.\S     查找非空白字符.\b     匹配单词边界.\B     匹配非单词边界.\0     查找 NULL 字符.\n     查找换行符.\f     查找换页符.\r   

JavaScript正则表达式-RegExp对象

RegExp对象方法 exec():与String对象的match()方法功能相同. 参数为被搜索字符串.返回数组或null. test():与String对象的search()方法功能相同. 参数为被搜索字符串.返回true或false. RegExp对象实例属性 global:布尔值,表示正则表达式中后缀选项g是否被设置. ignoreCase:布尔值,表示正则表达式中后缀选项i是否被设置. lastIndex:一个整数值,表示下一次匹配开始的位置索引. multiline:布尔值,表示正则

正则表达式REGEXP

REGEXP在列值内进行匹配,只要被匹配的文本在列值中出现,相应行就能被返回,但是like只能匹配整个列 1.1 or匹配 | 为正则表达式的OR操作符,表示匹配其中之一 e.g. select prod_name from products where prod_name REGEXP '1000|2000' 1.2匹配几个字符之一 [] 是另外一种形式的OR语句,[123]匹配字符1.2.3 1.3匹配范围 - 用来定义一个范围 [0-9] 匹配数字0到9:[a-z]匹配26个小写字母 1.

正则表达式RegExp详解(待续)

正则表达式(Regular Expression)是一种描述字符模式的对象,RegExp 对象表示正则表达式,用来验证用户输入. 一,创建正则表达式 1,采用new运算符 var bb=new RegExp('参数字符串','可选模式修饰符') 2,字面量法 var bb=/参数字符串/可选模式修饰符; 模式修饰符参数 i 忽略大小写 g 全局匹配 m 多行匹配 二,RegExp相关方法 test()在字符串中查找指定正则表达式,返回true或false exec()在字符串中查找指定正则表达式

MySQL正则表达式 REGEXP详解

在开始这个话题之前我们首先来做一个小实验,比较一下REGEXP和Like他们两个哪个效率高,如果效率太低,我们就没有必要做过多的研究了,实验的代码如下:<?phpRequire("config.php");//函数:计时函数//用法:Echo Runtime(1);Function Runtime($mode=0){    Static $s;    IF(!$mode){        $s=microtime();        Return;    }    $e=micr

javascript正则表达式RegExp的静态属性之$1-$9

javascript正则表达式是支持分组捕获的,分组的结果会存储在RegExp的静态属性$1-$9中.也就是说当正则表达式中的分组超过9个的时候,RegExp最多只保留9个. // 含10个分组的正则 var regexp = /(\w)-(\w)-(\w)-(\w)-(\w)-(\w)-(\w)-(\w)-(\w)-(\w)/; var str = 'a-b-c-d-e-f-g-h-i-j-k-l-m-n-o'; //regexp.test(str); regexp.exec(str); fo

正则表达式(RegExp)

Regular Expression,正则表达式,简写为RegExp. BRE :Basic RegExp,基本正则表达式 ERE :Extend RegExp,扩展正则表达式 PCRE :Perl Compatible RegExp,Perl兼容的正则表式 基本正则表达式 字符匹配 匹配次数 位置锚定 位置锚定:定位出现的位置 分组 分组:\(\)将一个或多个字符捆绑在一起,当作一个整体进 行处理,如:\(root\)\+ 分组括号中的模式匹配到的内容会被正则表达式引擎记录于 内部的变量中,这