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

AnA*_*ice 28 ruby-on-rails

给出如下内容:

 message.split(/\n.* at.* XXXXXXXX wrote:.*/m).first
Run Code Online (Sandbox Code Playgroud)

如果匹配但是如果没有匹配则这可以正常工作ruby返回所有消息.我想首先看看是否匹配,如果是,那么返回上面的内容.

想法?谢谢

Pau*_*ell 52

如果您正在尝试计算匹配数,那么您使用的是错误的方法.Split被设计为取一个字符串并将其切成小块,但正如您所观察到的,如果没有任何匹配,那么它将返回整个内容.我想你想使用String.scan:

message.scan(/\n.* at.* XXXXXXXX wrote:.*/m).size
Run Code Online (Sandbox Code Playgroud)