正则表达式只保留img src文本

时间:2014-03-06 09:54:57

标签: c# regex

我有一个给定的字符串:

< img src='^f('hImagepath')[1].label()^MegaMillions_NoBkgd.png'/>

我想要一个正则表达式,它会返回“MegaMillions_NoBkgd.png”这部分上面的字符串 使用正则表达式后的结果应该是“MegaMillions_NoBkgd.png”存储在字符串变量中。

提前致谢

3 个答案:

答案 0 :(得分:0)

string matchString = Regex.Match(original_text, @"(<img([^>]+)>)").Value;

答案 1 :(得分:0)

然后我相信这应该或多或少地给你你需要的东西:

 var x =  "< img src='^f('hImagepath')[1].label()^MegaMillions_NoBkgd.png'/>";

 // Result will be: 
 // ^f('hImagepath')[1].label()^MegaMillions_NoBkgd.png'
 var result = Regex.Match(x, @"\^f\((.)*'").Value;

当然,更简单,更易读的解决方案是做类似的事情,并避免完全使用正则表达式:

var x =  "<img src='^f('hImagepath')[1].label()^MegaMillions_NoBkgd.png'/>";
var urlStart = x.IndexOf("'") + 1;
var urlStop = x.LastIndexOf("'");
var result = x.Substring(urlStart, (urlStop - urlStart));

答案 2 :(得分:0)

这将为您提供预期的结果:

string s = "< img src='^f('hImagepath')[1].label()^MegaMillions_NoBkgd.png'/>";
int start = s.LastIndexOf('^');
int stop = s.LastIndexOf('\'');

string result = s.Substring(start+1, stop-start-1);