给出类似的东西:
message.split(/\n.* at.* XXXXXXXX wrote:.*/m).first
如果匹配但是如果没有匹配则这可以正常工作ruby将返回所有消息。我想首先看看是否匹配,如果是,那么返回上面。
想法?感谢
答案 0 :(得分:49)
如果您尝试计算匹配数,那么您使用的是错误的方法。 Split被设计为取一个字符串并将其切成小块,但正如您所观察到的,如果没有任何匹配,那么它将返回整个内容。我想你想使用String.scan:
message.scan(/\n.* at.* XXXXXXXX wrote:.*/m).size
答案 1 :(得分:1)
分裂将返回一个数组。所以你可以检查长度> 1
m = message.split(/\n.* at.* XXXXXXXX wrote:.*/m)
if m.length > 1
return m.first
else
return nil
end