カウントマッチを決定します。レール、ルビー - 正規表現を考える - のようなものを考える
message.split(/\n.* at.* XXXXXXXX wrote:.*/m).first
一致がある場合、これは正常に動作しますが、それは取得しない場合は、一致ルビーは、メッセージのすべてを返します。私は最初にtheresが一致するかどうかを確認したいと思います。
アイデア?ありがとう
カウントマッチを決定します。レール、ルビー - 正規表現を考える - のようなものを考える
message.split(/\n.* at.* XXXXXXXX wrote:.*/m).first
一致がある場合、これは正常に動作しますが、それは取得しない場合は、一致ルビーは、メッセージのすべてを返します。私は最初にtheresが一致するかどうかを確認したいと思います。
アイデア?ありがとう
をチェックすることができます。 Splitは文字列を取り込んでビットに分割するように設計されていますが、見たように一致するものがなければ全体を返します。代わりにString.scanを使用したいと思います。
message.scan(/\n.* at.* XXXXXXXX wrote:.*/m).size
よく分割すると配列が返されます。あなたは、あなたが間違った方法を使用している、数に一致の数をしようとしているのであれば、あなただけの長さ> 1
m = message.split(/\n.* at.* XXXXXXXX wrote:.*/m)
if m.length > 1
return m.first
else
return nil
end
@Doon、申し訳ありません、それはいつもm.firstを返します。アイデア? – AnApprentice
ここで私が持っているものです:すべてのm.lengthがあるよう エンド – AnApprentice
nilの他m.length> 1 リターンm.first.strip リターンが見える場合は、M = to.split (*// @ mysite.com。)やっているのは文字数?あなたの例では – AnApprentice
ありがとう、しかし、それは長さを得るのですか?一致するものが見つかった場合はIE。私は試合が見つかったかどうかを知る必要があります。 – AnApprentice
また、そのような正規表現を設定できますか?エラーが発生しました – AnApprentice
あなたはそのような正規表現を設定することができます(私にとってはうまくいく)。申し訳ありませんが、ちょうど確認するために、文字通りそれが一致するかどうかを知りたいと言っていますか? (つまり、テキストの抽出に興味がないのですか?) –