使用 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 Sep 5 活动(标签的文本)经理在 TU4 Sep 5 Activity 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."
谢谢,
吉涅什