Ruby,文件中的每一行都匹配正则表达式

时间:2013-05-23 13:26:05

标签: ruby regex

我不明白为什么这段代码在字符串中找不到模式。 我打开一个文件并读取文件中的每一行并用“/ t”拆分,然后我尝试找到一个模式。但它找不到它。 输入文件:

1553338_at/C1orf55  225142_at/JHDM1D    0.9075880395022964  
1553338_at/C1orf55  230778_at/---   0.9133682114964662

代码:

input=File.open("/lalal/lalal.txt","r")

input.each{|line|

    keys=line.split("\t")
    puts(keys[1])

    a=/---/.match(keys[1])
    puts(a.class)    

}

输出:

225142_at/JHDM1D
NilClass
230778_at/---
NilClass

我不明白为什么在"---"找不到230778_at/---? 提前致谢

2 个答案:

答案 0 :(得分:1)

- 

是正则表达式保留符号。使用

\-

更好的是,将匹配线更改为

a = /\-{3}/.match(keys[1])

答案 1 :(得分:0)

它匹配(在Ruby 2.0.0上)。

/---/.match("230778_at/---")
# => #<MatchData "---">
相关问题