高难度正则匹配--高分猎头

红皮猴 2008-07-08 11:33:54
<![if !vml]>
<span style='mso-ignore:vglayout;position:
absolute;z-index:7;left:117px;top:103px;width:28px;height:12px'>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032">
</span>
<![endif]>


<![if !vml]>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032">
<![endif]>

用正则试处理后(替换)变成
[img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
...全文
250 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaajedll 2008-07-08
  • 打赏
  • 举报
回复
學習了
jzywh 2008-07-08
  • 打赏
  • 举报
回复
message 替换成你要替换的全部字符串

string message = "<![if !vml]><span style='mso-ignore:vglayout;position:absolute;z-index:7;left:117px;top:103px;width:28px;height:12px'><img width=28 height=12 src=\"民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif\" v:shapes=\"_x0000_s1032\"></span><![endif]>";
Regex reg = new Regex("<img width=(\"?[0-9]*\"?) height=(\"?[0-9]*\"?) src=\"(.*?)\".*/?>");
message = reg.Replace(message, "[img width=$1 height=$2 src=\"$3\" /]");
Console.WriteLine(message);
yizhilaoshu2 2008-07-08
  • 打赏
  • 举报
回复
我顶
jzywh 2008-07-08
  • 打赏
  • 举报
回复

string message = "<img width=28 height=12 src=\"民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif\" v:shapes=\"_x0000_s1032\">";
Regex reg = new Regex("<img width=(\"?[0-9]*\"?) height=(\"?[0-9]*\"?) src=\"(.*?)\".*/?>");
message = reg.Replace(message, "[img width=$1 height=$2 src=\"$3\" /]");
Console.WriteLine(message);
红皮猴 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 maco_wang 的回复:]
HTML code
<![if !vml]>
<span style='mso-ignore:vglayout;position:
absolute;z-index:7;left:117px;top:103px;width:28px;height:12px'>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032">
</span>
<![endif]>


<![if !vml]>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0…
[/Quote]

是替换成
[img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]

[img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
xlong224 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 maco_wang 的回复:]
<img([^>])*>.*? </img([^>])*>
[/Quote]
叶子 2008-07-08
  • 打赏
  • 举报
回复
<img([^>])*>.*?</img([^>])*>
叶子 2008-07-08
  • 打赏
  • 举报
回复
是要替换成这样吗?你只是要干什么呀?
叶子 2008-07-08
  • 打赏
  • 举报
回复

<![if !vml]>
<span style='mso-ignore:vglayout;position:
absolute;z-index:7;left:117px;top:103px;width:28px;height:12px'>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032">
</span>
<![endif]>


<![if !vml]>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032">
<![endif]>

<!--变化成-->

<![if !vml]>
<span style='mso-ignore:vglayout;position:
absolute;z-index:7;left:117px;top:103px;width:28px;height:12px'>
[img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
</span>
<![endif]>

<![if !vml]>
[img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
<![endif]>

qiuming0306 2008-07-08
  • 打赏
  • 举报
回复
不好搞
sheng9hhd 2008-07-08
  • 打赏
  • 举报
回复
<!\[if !vml\]>(.)*<img\s[^>]+>(.)*<!\[endif\]>
红皮猴 2008-07-08
  • 打赏
  • 举报
回复
形式1:
<![if !vml]>
<span style='mso-ignore:vglayout;position:
absolute;z-index:7;left:117px;top:103px;width:28px;height:12px'>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032">
</span>
<![endif]>
形式2:
<![if !vml]>
<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032">
<![endif]>

把2种字符串用正则试都变成
[img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
红皮猴 2008-07-08
  • 打赏
  • 举报
回复
就是提取<![if !vml]><![endif]>中的img标记
HimeTale 2008-07-08
  • 打赏
  • 举报
回复
说的详细点
另外,上次的帖还没结呢
root_ 2008-07-08
  • 打赏
  • 举报
回复

string result = Regex.Replace(str, @"<!\[if\s*!vml\]>[\s\S]*?<(img[^>]*?src=""[^""]*"")[^>]*>[\s\S]*?<!\[endif\]>", "[$1/]", RegexOptions.IgnoreCase);

datahandler2 2008-07-08
  • 打赏
  • 举报
回复
非常讨厌复杂正则。简直是外星语言~~~~。不过还是要加强下。关注下你的结果2
紫气东来_999 2008-07-08
  • 打赏
  • 举报
回复
MARK
brz97 2008-07-08
  • 打赏
  • 举报
回复
一点难度都没有,楼上已经解决了
家鸣 2008-07-08
  • 打赏
  • 举报
回复
上面的代码都帮你实现了,复制下来就可用。
还不行?
红皮猴 2008-07-08
  • 打赏
  • 举报
回复
看来实现不了那就换其它思路
把<img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif" v:shapes="_x0000_s1032"> 替换成
[img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
注意img标签有换行的情况
加载更多回复(20)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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