ruby 正则表达式 使用正负预查

简介:
例1:如果字符串New World后是Symphony 或 Dictionary 字符串New World将匹配, 但第三个单词不是匹配内容的一部分:
InBlock.gifs1= "New World Dictionary" 
InBlock.gifs2= "New World Symphony" 
InBlock.gifs3= "New World Order" 
InBlock.gifreg=/New World (?=Dictionary|Symphony)/ 
InBlock.gifm1=reg.match(s1) 
InBlock.gifm2=reg.match(s2) 
InBlock.gifm3=reg.match(s3) 
InBlock.gifp m1[0] 
InBlock.gifp m2[0] 
InBlock.gifp m3
"New World "
"New World "
nil
负预查示例:
InBlock.gifs1= "New World Dictionary"  
InBlock.gifs2= "New World Symphony"  
InBlock.gifs3= "New World Order"  
InBlock.gifreg2=/New World(?! Symphony)/ 
InBlock.gifm1=reg2.match(s1) 
InBlock.gifm2=reg2.match(s2) 
InBlock.gifm3=reg2.match(s3) 
InBlock.gifm1.to_a 
InBlock.gifm2.to_a 
InBlock.gifm3.to_a 
InBlock.gifputs m1, m2, m3
New World
nil
New World
在上例中,仅当字符串New World 后面没有Symohony时才匹配




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/68526,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
Ruby
|
4月前
|
Ruby
|
4月前
|
Ruby
|
Ruby 索引
【Ruby on Rails全栈课程】2.5 正则表达式
1、正则表达式(Regexp) 正则表达式是对字符串操作的公式,用来过滤字符串或者从字符串中匹配出我们需要的字符,在各类语言中都有应用
98 0
【Ruby on Rails全栈课程】2.5 正则表达式
Rubular: 基于 Web 的 Ruby 正则表达式编辑器
当我们在 Ruby 项目中使用正则表达式时,如果想要即刻看到该正则的匹配结果,似乎除了跑代码外别无他法。假如匹配有误,我们必须回头重新修订正则表达式。如此周而复始,不仅效率低下,而且费时不少。如果我们利用Rubular 这个基于 Web 的 Ruby正则表达式编辑器,则问题迎刃而解。
438 0
Rubular: 基于 Web 的 Ruby 正则表达式编辑器
ruby的正则表达式操作(1)
ruby语言中用~/字符/来匹配表达式,$`得到匹配之前的那部分字符串,$'得到匹配之后的字符串,$&得到匹配到的字符串,如下所示 def show_regexp(a,re)    if a=~re        puts "#{$`}#{$'}"    else        puts "no ...
684 0
|
Ruby 移动开发
ruby的正则表达式操作(2)
ruby的正则表达式中的字符类缩写 字符      是         含义 \d                [0-9]                   数字字符 \D                [^0-9]                     除数字之外的任何字符 \s  ...
643 0
ruby的正则表达式操作(3)
正则表达式的分组 在模式内部,\1序列指的是第一个组的匹配,\2序列指的是第二个组的匹配,如 irb(main):008:0> "12:50am"=~/(\d\d):(\d\d)(..)/=> 0irb(main):009:0> "Hour is #$1,minute is #$2"=> "Ho...
681 0