Rubyの使用:ruby 1.9.3dev(2011-09-23リビジョン33323)[i686-linux]
私は次の文字列を持っています:
str = 'Message relates to activity <a href="/activities/35">TU4 Sep 5 Activity 1</a> <img src="/images/layout/placeholder.png" width="222" height="149"/><br/><br/>First question from Manager on TU4 Sep 5 Activity 1.'
私は以下に一致したい:
35(href属性値の一部である数値)
TU4 9月5日アクティビティ(タグのテキスト)TU4 9月5日アクティビティ1に関するマネージャーからの最初の質問(最後のタグ
の後の残りのテキスト)<br/><br/>
同じことを達成するために、私は次の正規表現を書きました
result = str.match(/<a href="\/activities\/(?<activity_id>\d+)">(?<activity_title>.*)<\/a>.*<br\/><br\/>(?<message>.*)/)
これにより、次の結果が生成されます。
#<MatchData "<a href=\"/activities/35\">TU4 Sep 5 Activity 1</a> <img src=\"/images/layout/placeholder.png\" width=\"222\" height=\"149\"/><br/><br/>First question from Manager on TU4 Sep 5 Activity 1."
activity_id:"35"
activity_title:"TU4 Sep 5 Activity 1"
message:"First question from Manager on TU4 Sep 5 Activity 1.">
しかし、これは効率的ではないと思います。どういうわけか、必要な値(上記のように一致させたいもの)のみが一致した結果に返され、次の値が一致した結果から除外される可能性はありますか?
"<a href=\"/activities/35\">TU4 Sep 5 Activity 1</a> <img src=\"/images/layout/placeholder.png\" width=\"222\" height=\"149\"/><br/><br/>First question from Manager on TU4 Sep 5 Activity 1."
ありがとう、
ジグネシュ