我不明白为什么这段代码在字符串中找不到模式。 我打开一个文件并读取文件中的每一行并用“/ 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/---
?
提前致谢
答案 0 :(得分:1)
-
是正则表达式保留符号。使用
\-
更好的是,将匹配线更改为
a = /\-{3}/.match(keys[1])
答案 1 :(得分:0)
它匹配(在Ruby 2.0.0上)。
/---/.match("230778_at/---")
# => #<MatchData "---">