首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 高难度正则匹配--高分猎头
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于: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"/]
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 11:57:141楼 得分:0
    说的详细点
    另外,上次的帖还没结呢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:02:492楼 得分:0
    就是提取 <![if !vml]> <![endif]>中的img标记
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:04:413楼 得分:0
    形式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 12:11:214楼 得分:0
    <!\[if !vml\]>(.)* <img\s[^>]+>(.)* <!\[endif\]>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qiuming0306
    • 等级:
    发表于:2008-07-08 12:22:325楼 得分:0
    不好搞
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:22:366楼 得分:0
    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="_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]>

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:23:227楼 得分:0
    是要替换成这样吗?你只是要干什么呀?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:26:478楼 得分:0
    <img([^>])*>.*? </img([^>])*>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:28:309楼 得分:0
    引用 8 楼 maco_wang 的回复:
    <img([^>])*>.*? </img([^>])*>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:36:2110楼 得分:0
    引用 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…


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

    [img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jzywh
    • 等级:
    发表于:2008-07-08 12:37:3611楼 得分:0
    C# code
    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 12:38:3512楼 得分:0
    我顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jzywh
    • 等级:
    发表于:2008-07-08 12:40:5513楼 得分:0
    message 替换成你要替换的全部字符串
    C# code
    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);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • aaajedll
    • 等级:
    发表于:2008-07-08 12:44:2414楼 得分:0
    學習了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qiuming0306
    • 等级:
    发表于:2008-07-08 13:05:0415楼 得分:0
    make
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 13:13:4316楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 13:24:4617楼 得分:0
    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="_x0000_s1032"> <![endif]> <!--变化成--> [img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/] [img width=28 height=12 src="民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif"/]
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 13:27:3318楼 得分:0
    测试数据
    HTML code
    <p class="MsoNormal" style="mso-outline-level:1"> <span style="font-size:14.0pt; mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;; mso-hansi-font-family:&quot;Times New Roman&quot;">二、在首页左上角选择<b>“电子商户</b></span><b><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt">-</span></b><b><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family: &quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">商户证书下载”</span></b><span style="font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family: &quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;"></span><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt"><o:p></o:p></span></p> <p class="MsoNormal" align="center" style="text-align:center"> <span lang="EN-US"><![if !vml]> <img border="0" width="451" height="333" src="民生银行电子商户(B2C___)证书下载步骤10.files/image004.jpg" v:shapes="_x0000_s1036"><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="PBrush" ShapeID="_x0000_i1026" DrawAspect="Content" ObjectID="_1277012795"> </o:OLEObject> </xml><![endif]--></span><b><span lang="EN-US" style="font-size:14.0pt; mso-bidi-font-size:12.0pt"><o:p></o:p></span></b></p> <p class="MsoNormal" style="mso-outline-level:1"> <span style="font-size:14.0pt; mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;; mso-hansi-font-family:&quot;Times New Roman&quot;">三、在打开的证书下载窗口输入<b>参考号、授权码</b>,下载商户证书;</span><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt"><o:p></o:p></span></p> <p class="MsoNormal" align="center" style="text-align:center"> <span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt"><![if !vml]> <img border="0" width="432" height="320" src="民生银行电子商户(B2C___)证书下载步骤10.files/image006.jpg" v:shapes="_x0000_s1035"><![endif]><o:p></o:p></span></p> <p class="MsoNormal" style="mso-outline-level:1"> <span style="font-size:14.0pt; mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;; mso-hansi-font-family:&quot;Times New Roman&quot;">四、证书下载成功后,输入<b>商户号</b>即可登录商户后台,查看网上支付订单信息;</span><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt"><o:p></o:p></span></p> <p class="MsoNormal" align="center" style="text-align:center"> <span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt"><![if !vml]> <img border="0" width="432" height="314" src="民生银行电子商户(B2C___)证书下载步骤10.files/image008.jpg" v:shapes="_x0000_s1034"><![endif]><o:p></o:p></span></p> <p class="MsoNormal" style="mso-outline-level:1"> <span style="font-size:14.0pt; mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;; mso-hansi-font-family:&quot;Times New Roman&quot;">五、该证书从浏览器导出后,可作为网上支付服务器加密私钥,具体导出证书操作如下图:</span><span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-size:12.0pt"><o:p></o:p></span></p>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jzywh
    • 等级:
    发表于:2008-07-08 13:45:4319楼 得分:0
    C# code
    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 border=\"0\" width=(\"?[0-9]*\"?) height=(\"?[0-9]*\"?) src=\"(.*?)\".*/?>"); message = reg.Replace(message, "[img width=$1 height=$2 src=\"$3\" /]"); Console.WriteLine(message);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 14:15:5620楼 得分:0
    楼上的兄弟,不行呀
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 14:29:0521楼 得分:0
    太深奥了。。。
    学习。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangkun9999
    • 等级:
    发表于:2008-07-08 15:38:0322楼 得分:0
    C# code
    //string text = "<![if !vml]><img width=28 height=12 src=\"民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif\" v:shapes=\"_x0000_s1032\"><![endif]>"; string text = "<![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]>"; string s=System.Text.RegularExpressions.Regex.Replace(text,@"(<!\[if !vml\]>(<[^>]*?>)?)(<)(img[^>].*?)(>)((<[^>]*?>)?<!\[endif\]>)","[$4]",System.Text.RegularExpressions.RegexOptions.IgnoreCase); s=s.Replace("v:shapes=\"_x0000_s1032\"",""); Response.Write(s);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qq22345111
    • 等级:
    发表于:2008-07-08 15:42:4223楼 得分:0
    9999正解
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangkun9999
    • 等级:
    发表于:2008-07-08 15:43:1524楼 得分:0
    如果v:shapes="_x0000_s1032"的位置固定的话(放在img元素的后面)也可以用一个正则替换:
    C# code
    //string text = "<![if !vml]><img width=28 height=12 src=\"民生银行电子商户(B2C___)证书下载步骤2.files/image002.gif\" v:shapes=\"_x0000_s1032\"><![endif]>"; string text = "<![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]>"; string s=System.Text.RegularExpressions.Regex.Replace(text,@"(<!\[if !vml\]>(<[^>]*?>)?)(<)(img[^>].*?)(v:shapes=""(.*)"">)((<[^>]*?>)?<!\[endif\]>)","[$4]",System.Text.RegularExpressions.RegexOptions.IgnoreCase); Response.Write(s);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangkun9999
    • 等级:
    发表于:2008-07-08 15:55:0325楼 得分:0
    像元素位置不固定的这种情况(如 <img中的border,weight,height,src等元素位置不定)正则替换可能就比较复杂了,这方面我也不太清楚,可能只有 root_,过客 等高手才能来解答,我也想知道^_^
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 16:12:0826楼 得分:0
    <img\\s*[^>]*>
    我用这个都可以把Html中的Img 找出来
    然后 用 Src=[\\s]*[\" ¦' ¦\\s][^\" ¦' ¦\\s]+[\" ¦' ¦\\s]
    得到地址 
    不知道满足你的要求不
    修改 删除 举报 引用