字符替换
有一段字符串:
<p center="" style="text-align: center"><img src="/upimage/rxd034 (1).jpg" /></p><p center="" style="text-align: center"><img src="/upimage/rxd034 (2).jpg" /></p><p center="" style="text-align: center"><img src="/upimage/rxd034 (3).jpg" /></p>
现在需要把字符里面的 rxd034 (1).jpg , rxd034 (2).jpg , rxd034 (3).jpg
中间的空格替换成 “%” 变成 rxd034%(1).jpg rxd034%(2).jpg rxd034%(3).jpg
用正则吗?怎么写,谢谢了。
[解决办法]
string html = "...";
string[] found = Regex.Matches(html, @"\/upimage\/\w+\s\(\d+\).jpg").Cast<Match>().Select(x => x.Value).ToArray();
foreach (var item in found)
{
html = html.Replace(item, item.Replace(" ", "%"));
}
[解决办法]
(?<=<img\b[^>]*?src="/upimage/\w+)\s*(?=\(\d+\)\.jpg)
string yourhtml = "...";
yourhtml = Regex.Replace(yourhtml, @"(?<=<img\b[^>]*?src="\/upimage\/\w+)\s*(?=\(\d+\)\.jpg)","%");
string str = "<p center="" style="text-align: center"><img src="/upimage/rxd034 (1).jpg" /></p><p center="" style="text-align: center"><img src="/upimage/rxd034 (2).jpg" /></p><p center="" style="text-align: center"><img src="/upimage/rxd034 (3).jpg" /></p>";
Console.WriteLine(Regex.Replace(str,"(<img[\\s]*src="/upimage/[^>]+)([ ]+)([^>]+" />)","$1%$3"));