Ruby on rails rails,ruby-给定一个正则表达式-确定匹配计数

Ruby on rails rails,ruby-给定一个正则表达式-确定匹配计数,ruby-on-rails,Ruby On Rails,假设: message.split(/\n.* at.* XXXXXXXX wrote:.*/m).first 如果存在匹配项,则此操作有效,但如果不存在匹配项,则仅返回所有消息Well split将返回一个数组。因此,您可以检查长度是否大于1 m = message.split(/\n.* at.* XXXXXXXX wrote:.*/m) if m.length > 1 return m.first else return nil end 如果您试图计算匹配数,

假设:

 message.split(/\n.* at.* XXXXXXXX wrote:.*/m).first

如果存在匹配项,则此操作有效,但如果不存在匹配项,则仅返回所有
消息

Well split将返回一个数组。因此,您可以检查长度是否大于1

m =  message.split(/\n.* at.* XXXXXXXX wrote:.*/m)
if m.length > 1 
   return m.first
else
   return nil 
end
如果您试图计算匹配数,那么您使用的方法是错误的
split
的设计目的是将一个字符串切分为若干位,但正如您所观察到的,如果没有任何匹配项,则返回整个字符串。我想你应该用:


@杜恩,对不起,我刚试过。。。它总是先返回m。想法?这里是我的:m=to.split(/@mysite.com.*/)如果m.length>1返回m.first.strip否则返回nil end看起来m.length所做的一切都是在计数字符?在您的示例中,to是什么?您到底想做什么?看起来你正在阅读一个to字段中的信息,并且试图获取一些信息。可能有更好的方法获取这些信息。谢谢,但是从哪里获取长度?如果找到匹配项。我只需要知道是否找到了匹配项。您应该能够设置这样的regexp(对我来说很有用)。对不起,我只是想确认一下,你是说你只是想知道它是否匹配?(也就是说,你对提取任何文本都不感兴趣?)啊,对不起,你刚刚意识到你在试图计算得到的匹配数,而不是真正尝试分割字符串。编辑答案。
message.scan(/\n.* at.* XXXXXXXX wrote:.*/m).size