我有这个字符串:的Javascript正则表达式返回不需要的字符
<AdParameters>
<VpaidClickThrough><![CDATA[http://media.adrcdn.com/ads/exit.html]]></VpaidClickThrough>
<VpaidClickTracking><![CDATA[]]></VpaidClickTracking>
<VpaidPath><![CDATA[http%3A%2F%2Fmedia.adrcdn.com%2Fads%2FAdrime%2F3130343734%2F61112%2F]]></VpaidPath>
<VpaidDuration><![CDATA[]]></VpaidDuration>
<VpaidId><![CDATA[e322f52bc813f05beacb6fe522a52f20]]></VpaidId>
</AdParameters>
<MediaFiles>
<MediaFile id="0" maintainAspectRatio="false" scalable="false" delivery="progressive" width="640" height="360" apiFramework='VPAID' type="application/x-shockwave-flash"> <![CDATA[http%3A%2F%2Fmedia.adrcdn.com%2Fads%2FAdrime%2F3130343734%2F61112%2Fmediafile_lineair_640x360.swf?VpaidId=e322f52bc813f05beacb6fe522a52f20&VpaidPath=http%3A%2F%2Fmedia.adrcdn.com%2Fads%2FAdrime%2F3130343734%2F61112%2F]]></MediaFile>
<MediaFiles>
而且我想从这里所有的编码的URL中提取。 所以我用这个正则表达式:
(http\%3A.*)\?|(http\%3A.*)\]\]
但我得到的是这样的:“?”
http%3A%2F%2Fmedia.adrcdn.com%2Fads%2FAdrime%2F3130343734%2F61112%2F]]
http%3A%2F%2Fmedia.adrcdn.com%2Fads%2FAdrime%2F3130343734%2F61112%2Fmediafile_lineair_640x360.swf?
http%3A%2F%2Fmedia.adrcdn.com%2Fads%2FAdrime%2F3130343734%2F61112%2F]]
这是相当好,但我不希望最后的“]”和 如何获取没有这些结尾字符的网址?
这很奇怪,因为在这里尝试我的正则表达式http://regex101.com/r/zS0tZ8它看起来很完美。
预先感谢您。
为什么你把\\] \\]在你的正则表达式呢? – Onheiron
您误解了该页面上的匹配项。数学小组下面的部分列出了正确的正则表达式部分,即括号中的部分。如果你看看实际的字符串,你会发现它们实际上是匹配额外的字符。 –