正则表达式啊!
........<img src="/WebSite7/fckeditor/userfiles/qzen1.jpg" />............<img src="/WebSite7/fckeditor/userfiles/qzen2.jpg" />....
...<img src="/WebSite7/fckeditor/userfiles/qzen3.jpg" />....
如上有一篇文章,有很多图片,如何把这篇文章的所有图片的地址换掉,但保留图片名,如下:
........<img src=new+"qzen1.jpg" />.........
...<img src=new+"qzen2.jpg" />....
...<img src=new+"qzen3.jpg" />....
应该是通过正则来实现
string str=".....(文章)"
Regex reg = new Regex(".....");
str = reg.Replace(str, new);
如何写这个正则表达式啊? --------------------编程问答--------------------
string str = @"........<img src=""/WebSite7/fckeditor/userfiles/qzen1.jpg"" />.........--------------------编程问答--------------------
...<img src=""/WebSite7/fckeditor/userfiles/qzen2.jpg"" />....
...<img src=""/WebSite7/fckeditor/userfiles/qzen3.jpg"" />....
";
str = Regex.Replace(str, @"(?<=<img src="")([^/""]*/)*", "newfilepath/");
Response.Write(str);
--------------------编程问答--------------------
void Main()
{
string str=@"........<img src=""/WebSite7/fckeditor/userfiles/qzen1.jpg"" />.........
...<img src=""/WebSite7/fckeditor/userfiles/qzen2.jpg"" />....
...<img src=""/WebSite7/fckeditor/userfiles/qzen3.jpg"" />....";
str=Regex.Replace(str,@"(?is)<img[^>]*?src=(""[^""]+/)([^\.]+\.jpg)""[^>]*/>",delegate (Match m){return m.Value.Replace(m.Groups[1].Value,@"new+""");});
Console.WriteLine(str);
}
/*
........<img src=new+"qzen1.jpg" />.........
...<img src=new+"qzen2.jpg" />....
...<img src=new+"qzen3.jpg" />....
*/
感谢你的热情 只是没有任何反应呢~~~呵呵 --------------------编程问答-------------------- 貌似不需要正则吧
直接替换好了。
string str=".....(文章)";
str = str.Replace("<img src=\"/WebSite7/fckeditor/userfiles/", "new+\"");
--------------------编程问答--------------------
string str=".....(文章)"
Regex reg = new Regex(@"(?<=<img src="")([^/""]*/)*");
str = reg.Replace(str, new);
--------------------编程问答--------------------
你的话点醒了梦中人 看样子我脑袋的确不灵光 --------------------编程问答--------------------
这位大侠正则表达式真的很强!! --------------------编程问答-------------------- 我不知道你的new的后面是直接跟“吗?根据你的代码:
........<img src=new+"qzen1.jpg" />.........
如果这样的话:
string YourCode = "/*your code*/";
string YourNewPath
string RegexString = "(?<=src=)[^>]+(?=qzen)";
Regex delPath = new Regex(RegexString);
MatchCollection pathColleciton = delPath.Matches(YourCode);
for (int i = 0; i < pathColleciton.Count; i++)
{
YourCode.Replace(pathColleciton[i].ToString(),YourNewPath + "\"");
}
这样的话,如果你的new是c:\的话,代码之后的源码变成了
<img src=c:\"qzen2.jpg" /img>
我觉得你的意思是要得到:
<img src="c:\\qzen2.jpg" /img>
这样的话:
--------------------编程问答--------------------
string YourCode = "/*your code*/";
string YourNewPath
string RegexString = "(?<=src=”)[^>]+(?=qzen)";
Regex delPath = new Regex(RegexString);
MatchCollection pathColleciton = delPath.Matches(YourCode);
for (int i = 0; i < pathColleciton.Count; i++)
{
YourCode.Replace(pathColleciton[i].ToString(),YourNewPath);
}
string result = Regex.Replace(text,@"(?<=<img[^>]+?src=\x22)[^\x22]+?(?=[^/\x22]+\x22)",@"new_path\");
补充:.NET技术 , C#