正则表达式 难题

bitzhou 2007-12-01 12:31:42
我用正则表达式:<IMG\ssrc=[\s\S]*?border=0>
获得以下内容:
<IMG src="xin_2721104302313500258303.jpg" border=0>
<IMG src="xin_4021104302313078191805.jpg" border=0>
<IMG src="xin_29210042823354375753189.gif" border=0>

但是我希望只获取src的值:xin_2721104302313500258303.jpg,xin_4021104302313078191805.jpg,xin_29210042823354375753189.gif

请问我如何过滤掉前面:<IMG src=" 和后面" border=0>这些标记
...全文
72 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
symbol441 2007-12-01
  • 打赏
  • 举报
回复
<IMG src="xin_2721104302313500258303.jpg" border=0>

(?<=<IMG[^src]+?src=")[^"]+?(?="[^>]+?>)

wangkun9999 2007-12-01
  • 打赏
  • 举报
回复
已经写了很多这样的正则了,不怎么难啊:

string str="..";
string RegexString = @"<IMG.+?src=""(?<SRC>[^<].*?)"".+?>";
string[] SRC = GetRegValue(str, RegexString, "SRC", true);

/// <summary>
/// 正则表达式取值
/// </summary>
/// <param name="HtmlCode">源码</param>
/// <param name="RegexString">正则表达式</param>
/// <param name="GroupKey">正则表达式分组关键字</param>
/// <param name="RightToLeft">是否从右到左</param>
/// <returns></returns>
public string[] GetRegValue(string HtmlCode , string RegexString,string GroupKey,bool RightToLeft)
{
MatchCollection m;
Regex r;
if (RightToLeft == true)
{
r = new Regex(RegexString, RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.RightToLeft);
}
else
{
r = new Regex(RegexString, RegexOptions.IgnoreCase | RegexOptions.Singleline);
}
m= r.Matches(HtmlCode);
string[] MatchValue = new string[m.Count];
for (int i = 0; i < m.Count; i++)
{
MatchValue[i] = m[i].Groups[GroupKey].Value;
}
return MatchValue;


}



bitzhou 2007-12-01
  • 打赏
  • 举报
回复
请问我如何过滤掉前面: <IMG src=" 和后面" border=0> 这些标记
liuyun1987 2007-12-01
  • 打赏
  • 举报
回复
string result =@"<IMG src="xin_2721104302313500258303.jpg" border=0> <IMG src="xin_4021104302313078191805.jpg" border=0> ...";
Match m = Regex.Match(result, @"<IMG src=""(?<img>[\w\W]+?)"" border=0> ", RegexOptions.IgnoreCase);
if (m.Success)
{
string img=m.Groups["img"].value.ToString(); //这里捕捉到的就是xin_2721104302313500258303.jpg
//do something
}
root_ 2007-12-01
  • 打赏
  • 举报
回复
MatchCollection mc = Regex.Matches(str, @"<img.*?src=""(?<url>[^""]*)""[^>]*>", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["url"].Value);
}
textpro6.5版 属于textpro6系列。支持Unicode。支持正则表达式。处理速度极快。是目前流行最好用的文本编辑器(之一)。内附使用说明及正则表达式手册。 主要功能 1. BIG5(BIG5+)码文件与GBK码文件相互转换 TextPro可以将13083个BIG5码和约21500个BIG5+码汉字与GBK码相互转换,转码数量在同类软件中最大。除了一对一的汉字转换外,内部转换时还采取了以词组选择多义字的方法以尽量减少转换错误;随后用户还可在自动转码后采用人工干预的“复选”操作,对最常见的转换错误进行审核。(用户还可自定义某学科的专用字替换表,详见“汉字转换说明”文件。) 由于Windows系统只支持BIG5码,不支持BIG5+码,我们决定从5.0正式版中舍弃GBK转BIG5+。 2. GBK码繁体与简体相互转换 与第1种功能结合,可以实现BIG5(BIG5+)至GBK简体优先的内码转换。 示例如下:(下面BIG5码字符显示为乱码,可用中文平台显示原来的字。) BIG码字符:竒阶疘簄宫履卅 转为GB码:经论、涅盘、阿僧只劫、金刚萨□(有错漏字) 转为GBK码:經論、涅槃、阿僧祇劫、金剛薩埵(不合国标) 再繁转简:经论、涅槃、阿僧祇劫、金刚萨埵(符合国标) GBK码繁简体转换与BIG5+/GBK转换功能分开执行可以适应一些特殊的需求,也为今后UNICODE的发展趋势做好了准备。 简体转繁体中解决了大部分一对多的难题,但对复杂情形和古文还不适用,只能起到参考作用。详见“汉字转换说明”文件。 3.强化的查找/替换功能(正则表达式和自定义替换) TextPro推出支持双字节的正则表达式和首创的自定义替换,功能十分强大。经过适当的组合,可以完成的功能几乎是无限的。详见“正则表达式和自定义替换说明”。 4.合并文件 Windows环境下合并文件的软件较少。TextPro能实现Windows环境中比较完善的文件合并功能。 TextPro有两种合并文件的操作方法。 一是半自动合并文件:单击“文件|合并文件”,选择文件,排序,填好合并后的文件名,然后单击“合并”; 二是自动合并文件:对有规律的文件名可以使用。例如有文件“001_001.txt”,“001_002.txt”……,“002_001.txt”,“002_002.txt”……,可以单击“文件|自动合并文件”,对其中的源文件输入正则表达式“(\d+)_(\d+)\.txt”,目标文件名为“\1.txt”,排序关键字为“\2”,则所有以001开头的文件合并为001.txt,以002开头的所有文件合并为002.txt。 5.文件比较 能够直观对比两个文件内容异同的软件较罕见。TextPro可以在窗口中打开两个文件,在“窗口”菜单选择“平铺”,分别单击每个文件内容中相同的启始位置,然后连续按键盘上的“F5”按键开始比较。 发现不同字符时,程序在下方状态栏提示不相同的字符及其位置,当前激活的文件中,光标自动移到不相同的字符处,以便直接编辑,另一个未激活文件窗口的显示位置自动随之移动。 比较时自动忽略回车和半角空格,还有“忽略全角标点符号”和“忽略半角符号”的选项。 如果在比较中失去正确的位置对应,请分别在两个文件中重新设定往下比较的起始位置。 6.批处理 除了第5项功能之外,TextPro可以同时对多个文件进行多步骤批处理。支持多层目录操作和文件备份。 TextPro还有许多特点,可在程序的帮助文件中看到,不一一例举了。TextPro是根据实际需求逐渐增加功能而发展起来的。只要灵活组合各种功能,即可实现汉字转换、文本处理和网页编辑的多种要求。 7.文字编辑 具有比Notepad更好的编辑功能,不受文件大小的限制。 ●下载与反馈● TextPro是一个免费软件。下载、解压后的TextPro.exe程序可直接使用,无须安装。 TextPro可以定制字体的显示颜色和换行方式。TextPro还提供一种GBK显示字库,在非简体中文WINDOWS时可以改善字体的美观性。 欢迎大家测试,以便推出更好用的TextPro 版本。若您有什么建议和意见,可发e-mail给我们。
看到有人发TP6.5版要分7分太狠了点,也不厚道。我从作者那里拿到最新版,分享给大家。 textpro6.5版 属于textpro6系列。支持Unicode。支持正则表达式。处理速度极快。是目前流行最好用的文本编辑器(之一)。内附使用说明及正则表达式手册。 主要功能 1. BIG5(BIG5+)码文件与GBK码文件相互转换 TextPro可以将13083个BIG5码和约21500个BIG5+码汉字与GBK码相互转换,转码数量在同类软件中最大。除了一对一的汉字转换外,内部转换时还采取了以词组选择多义字的方法以尽量减少转换错误;随后用户还可在自动转码后采用人工干预的“复选”操作,对最常见的转换错误进行审核。(用户还可自定义某学科的专用字替换表,详见“汉字转换说明”文件。) 由于Windows系统只支持BIG5码,不支持BIG5+码,我们决定从5.0正式版中舍弃GBK转BIG5+。 2. GBK码繁体与简体相互转换 与第1种功能结合,可以实现BIG5(BIG5+)至GBK简体优先的内码转换。 示例如下:(下面BIG5码字符显示为乱码,可用中文平台显示原来的字。) BIG码字符:竒阶疘簄宫履卅 转为GB码:经论、涅盘、阿僧只劫、金刚萨□(有错漏字) 转为GBK码:經論、涅槃、阿僧祇劫、金剛薩埵(不合国标) 再繁转简:经论、涅槃、阿僧祇劫、金刚萨埵(符合国标) GBK码繁简体转换与BIG5+/GBK转换功能分开执行可以适应一些特殊的需求,也为今后UNICODE的发展趋势做好了准备。 简体转繁体中解决了大部分一对多的难题,但对复杂情形和古文还不适用,只能起到参考作用。详见“汉字转换说明”文件。 3.强化的查找/替换功能(正则表达式和自定义替换) TextPro推出支持双字节的正则表达式和首创的自定义替换,功能十分强大。经过适当的组合,可以完成的功能几乎是无限的。详见“正则表达式和自定义替换说明”。 4.合并文件 Windows环境下合并文件的软件较少。TextPro能实现Windows环境中比较完善的文件合并功能。 TextPro有两种合并文件的操作方法。 一是半自动合并文件:单击“文件|合并文件”,选择文件,排序,填好合并后的文件名,然后单击“合并”; 二是自动合并文件:对有规律的文件名可以使用。例如有文件“001_001.txt”,“001_002.txt”……,“002_001.txt”,“002_002.txt”……,可以单击“文件|自动合并文件”,对其中的源文件输入正则表达式“(\d+)_(\d+)\.txt”,目标文件名为“\1.txt”,排序关键字为“\2”,则所有以001开头的文件合并为001.txt,以002开头的所有文件合并为002.txt。 5.文件比较 能够直观对比两个文件内容异同的软件较罕见。TextPro可以在窗口中打开两个文件,在“窗口”菜单选择“平铺”,分别单击每个文件内容中相同的启始位置,然后连续按键盘上的“F5”按键开始比较。 发现不同字符时,程序在下方状态栏提示不相同的字符及其位置,当前激活的文件中,光标自动移到不相同的字符处,以便直接编辑,另一个未激活文件窗口的显示位置自动随之移动。 比较时自动忽略回车和半角空格,还有“忽略全角标点符号”和“忽略半角符号”的选项。 如果在比较中失去正确的位置对应,请分别在两个文件中重新设定往下比较的起始位置。 6.批处理 除了第5项功能之外,TextPro可以同时对多个文件进行多步骤批处理。支持多层目录操作和文件备份。 TextPro还有许多特点,可在程序的帮助文件中看到,不一一例举了。TextPro是根据实际需求逐渐增加功能而发展起来的。只要灵活组合各种功能,即可实现汉字转换、文本处理和网页编辑的多种要求。 7.文字编辑 具有比Notepad更好的编辑功能,不受文件大小的限制。 ●下载与反馈● TextPro是一个免费软件。下载、解压后的TextPro.exe程序可直接使用,无须安装。 TextPro可以定制字体的显示颜色和换行方式。TextPro还提供一种GBK显示字库,在非简体中文WINDOWS时可以改善字体的美观性。 欢迎大家测试,以便推出更好用的TextPro 版本。若您有什么建议和意见,可发e-mail给我们。

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧