求一个找jpg图片的详细代码 如何找出一大段html代码中的图片。对于 正则表达式完全不懂,希望高手能给写个完整的方法。假设 目标html代码为 string a; 需要找出的图片格式为.jpg, .gif, .png.希望高手给出详细代码,谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个得看你HTML代码的内容才能写出相应的正则表达式。然后再得用这个表达去匹配 MatchCollection mc = Regex.Match(html,@"(?is)(?<=<img src=(['""])?)(https?)?[^""]+(?:jpg|png|gif)(?=\1)");foreach(Match m in mc){} /// <summary> /// 图片选择的处理 /// bmp格式 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnScan_Click(object sender, EventArgs e) { OpenFileDialog op = new OpenFileDialog(); //op.InitialDirectory = @"\..\LMS\Src\LMS\Image"; op.Filter = "图像文件 (*.bmp;*.jpg)|*.bmp;*.jpg"; if (op.ShowDialog() == DialogResult.OK) { //System.IO.Path.GetFileName(op.FileName);//得到文件名 //System.IO.Path.GetDirectoryName(op.FileName);//得到路径 //bool isTrue = false; try { using (System.Drawing.Image img = System.Drawing.Image.FromFile(op.FileName)) { img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg); } } catch { lblMsg.Text = cm.GetMessage("E00066"); lblMsg.ForeColor = Color.Red; return; } string m = op.FileName.Substring(op.FileName.LastIndexOf(".")); if (m == ".bmp" || m == ".jpg") { txtImgPath.Text = Path.GetDirectoryName(op.FileName) + op.FileName.Substring(op.FileName.LastIndexOf("\\")); //txtImgPath.Text = System.Windows.Forms.Application.StartupPath+"\\Image"+ op.FileName.Substring(op.FileName.LastIndexOf("\\")); //ptbImage.Image = Image.FromFile(txtImgPath.Text); //ADD BY LIU /********** ADD By chenshihu 20101116 ********/ //如果改文件为“只读”,则修改它的属性 bool isFileReadOnly = false; if (File.GetAttributes(txtImgPath.Text).ToString().IndexOf("ReadOnly") != -1) { isFileReadOnly = true; File.SetAttributes(txtImgPath.Text, FileAttributes.Normal); } /*********************************************/ FileStream files = new FileStream(txtImgPath.Text, FileMode.Open); byte[] imgbyte = new byte[files.Length]; files.Read(imgbyte, 0, imgbyte.Length); files.Close(); //ADD By chenshihu 20101119, 操作完成后,将文件的属性还原为“只读” if (isFileReadOnly) { File.SetAttributes(txtImgPath.Text, FileAttributes.ReadOnly); } MemoryStream ms = new MemoryStream(imgbyte, false); ms.Read(imgbyte, 0, imgbyte.Length); try { ptbImage.Image = Image.FromStream(ms, false); } catch { ptbImage.Image = null; } } else { if (ComLibrary.getAsk(cm.GetMessage("E00016"), "?", "提示", true)) { btnScan.PerformClick(); } } } } /// <summary> /// 图片选择的处理 /// bmp格式 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnScan_Click(object sender, EventArgs e) { OpenFileDialog op = new OpenFileDialog(); //op.InitialDirectory = @"\..\LMS\Src\LMS\Image"; op.Filter = "图像文件 (*.bmp;*.jpg)|*.bmp;*.jpg"; if (op.ShowDialog() == DialogResult.OK) { //System.IO.Path.GetFileName(op.FileName);//得到文件名 //System.IO.Path.GetDirectoryName(op.FileName);//得到路径 //bool isTrue = false; try { using (System.Drawing.Image img = System.Drawing.Image.FromFile(op.FileName)) { img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg); } } catch { lblMsg.Text = cm.GetMessage("E00066"); lblMsg.ForeColor = Color.Red; return; } string m = op.FileName.Substring(op.FileName.LastIndexOf(".")); if (m == ".bmp" || m == ".jpg") { txtImgPath.Text = Path.GetDirectoryName(op.FileName) + op.FileName.Substring(op.FileName.LastIndexOf("\\")); //txtImgPath.Text = System.Windows.Forms.Application.StartupPath+"\\Image"+ op.FileName.Substring(op.FileName.LastIndexOf("\\")); //ptbImage.Image = Image.FromFile(txtImgPath.Text); //ADD BY LIU /********** ADD By chenshihu 20101116 ********/ //如果改文件为“只读”,则修改它的属性 bool isFileReadOnly = false; if (File.GetAttributes(txtImgPath.Text).ToString().IndexOf("ReadOnly") != -1) { isFileReadOnly = true; File.SetAttributes(txtImgPath.Text, FileAttributes.Normal); } /*********************************************/ FileStream files = new FileStream(txtImgPath.Text, FileMode.Open); byte[] imgbyte = new byte[files.Length]; files.Read(imgbyte, 0, imgbyte.Length); files.Close(); //ADD By chenshihu 20101119, 操作完成后,将文件的属性还原为“只读” if (isFileReadOnly) { File.SetAttributes(txtImgPath.Text, FileAttributes.ReadOnly); } MemoryStream ms = new MemoryStream(imgbyte, false); ms.Read(imgbyte, 0, imgbyte.Length); try { ptbImage.Image = Image.FromStream(ms, false); } catch { ptbImage.Image = null; } } else { if (ComLibrary.getAsk(cm.GetMessage("E00016"), "?", "提示", true)) { btnScan.PerformClick(); } } } } 基本上 格式是这样的 <IMG border=0 alt=1.JPG src=\"http://10.66.44.100:30001/FCKeditor/1001003/zhudj20110114081811.JPG\" width=600></P><img src="img/2.jpg" /> 这个正则表达式取不到值。 另外 应该是=regex.matches 不是 match 求助 数据封包处理的问题 Winform 实现不同语言的界面转换 一个注册页面 如何判断 注册的账号数据库有的话就提示错误 紧急求问部分知识点 timer怎么写?? 急求.net 并口操作类,谢谢! 问个C#问题 急急!!ftp 552错误 我在工程中添加了一个bmp图象,作为嵌入资源?我如何用编程的方式把图像取出来,放到一个picture中? 关于调用外部程序时其子窗口移动范围 急!!在线等!!!请问:在MVC中,如何在Controllers里调用View里的js函数 如何找出大段文本中的特定文件
然后再得用这个表达去匹配
foreach(Match m in mc)
{}
/// 图片选择的处理
/// bmp格式
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnScan_Click(object sender, EventArgs e)
{
OpenFileDialog op = new OpenFileDialog();
//op.InitialDirectory = @"\..\LMS\Src\LMS\Image";
op.Filter = "图像文件 (*.bmp;*.jpg)|*.bmp;*.jpg";
if (op.ShowDialog() == DialogResult.OK)
{
//System.IO.Path.GetFileName(op.FileName);//得到文件名
//System.IO.Path.GetDirectoryName(op.FileName);//得到路径
//bool isTrue = false;
try
{
using (System.Drawing.Image img = System.Drawing.Image.FromFile(op.FileName))
{
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
catch
{
lblMsg.Text = cm.GetMessage("E00066");
lblMsg.ForeColor = Color.Red;
return;
}
string m = op.FileName.Substring(op.FileName.LastIndexOf("."));
if (m == ".bmp" || m == ".jpg")
{
txtImgPath.Text = Path.GetDirectoryName(op.FileName) + op.FileName.Substring(op.FileName.LastIndexOf("\\"));
//txtImgPath.Text = System.Windows.Forms.Application.StartupPath+"\\Image"+ op.FileName.Substring(op.FileName.LastIndexOf("\\"));
//ptbImage.Image = Image.FromFile(txtImgPath.Text);
//ADD BY LIU /********** ADD By chenshihu 20101116 ********/
//如果改文件为“只读”,则修改它的属性
bool isFileReadOnly = false;
if (File.GetAttributes(txtImgPath.Text).ToString().IndexOf("ReadOnly") != -1)
{
isFileReadOnly = true;
File.SetAttributes(txtImgPath.Text, FileAttributes.Normal);
}
/*********************************************/ FileStream files = new FileStream(txtImgPath.Text, FileMode.Open);
byte[] imgbyte = new byte[files.Length];
files.Read(imgbyte, 0, imgbyte.Length);
files.Close(); //ADD By chenshihu 20101119, 操作完成后,将文件的属性还原为“只读”
if (isFileReadOnly)
{
File.SetAttributes(txtImgPath.Text, FileAttributes.ReadOnly);
} MemoryStream ms = new MemoryStream(imgbyte, false);
ms.Read(imgbyte, 0, imgbyte.Length);
try
{
ptbImage.Image = Image.FromStream(ms, false);
}
catch { ptbImage.Image = null; }
}
else
{
if (ComLibrary.getAsk(cm.GetMessage("E00016"), "?", "提示", true))
{
btnScan.PerformClick();
}
}
}
}
/// 图片选择的处理
/// bmp格式
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnScan_Click(object sender, EventArgs e)
{
OpenFileDialog op = new OpenFileDialog();
//op.InitialDirectory = @"\..\LMS\Src\LMS\Image";
op.Filter = "图像文件 (*.bmp;*.jpg)|*.bmp;*.jpg";
if (op.ShowDialog() == DialogResult.OK)
{
//System.IO.Path.GetFileName(op.FileName);//得到文件名
//System.IO.Path.GetDirectoryName(op.FileName);//得到路径
//bool isTrue = false;
try
{
using (System.Drawing.Image img = System.Drawing.Image.FromFile(op.FileName))
{
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
catch
{
lblMsg.Text = cm.GetMessage("E00066");
lblMsg.ForeColor = Color.Red;
return;
}
string m = op.FileName.Substring(op.FileName.LastIndexOf("."));
if (m == ".bmp" || m == ".jpg")
{
txtImgPath.Text = Path.GetDirectoryName(op.FileName) + op.FileName.Substring(op.FileName.LastIndexOf("\\"));
//txtImgPath.Text = System.Windows.Forms.Application.StartupPath+"\\Image"+ op.FileName.Substring(op.FileName.LastIndexOf("\\"));
//ptbImage.Image = Image.FromFile(txtImgPath.Text);
//ADD BY LIU /********** ADD By chenshihu 20101116 ********/
//如果改文件为“只读”,则修改它的属性
bool isFileReadOnly = false;
if (File.GetAttributes(txtImgPath.Text).ToString().IndexOf("ReadOnly") != -1)
{
isFileReadOnly = true;
File.SetAttributes(txtImgPath.Text, FileAttributes.Normal);
}
/*********************************************/ FileStream files = new FileStream(txtImgPath.Text, FileMode.Open);
byte[] imgbyte = new byte[files.Length];
files.Read(imgbyte, 0, imgbyte.Length);
files.Close(); //ADD By chenshihu 20101119, 操作完成后,将文件的属性还原为“只读”
if (isFileReadOnly)
{
File.SetAttributes(txtImgPath.Text, FileAttributes.ReadOnly);
} MemoryStream ms = new MemoryStream(imgbyte, false);
ms.Read(imgbyte, 0, imgbyte.Length);
try
{
ptbImage.Image = Image.FromStream(ms, false);
}
catch { ptbImage.Image = null; }
}
else
{
if (ComLibrary.getAsk(cm.GetMessage("E00016"), "?", "提示", true))
{
btnScan.PerformClick();
}
}
}
}
基本上 格式是这样的 <IMG border=0 alt=1.JPG src=\"http://10.66.44.100:30001/FCKeditor/1001003/zhudj20110114081811.JPG\" width=600></P>
<img src="img/2.jpg" />
这个正则表达式取不到值。 另外 应该是=regex.matches 不是 match