首页 新闻 会员 周边 捐助

c#怎么利用正则表达式替换

0
悬赏园豆:30 [已解决问题] 解决于 2013-03-02 13:16

比如一个html页面,有tag标签:

<input type="text" name="text1" />

<input type="text" name="text2" />

<input type="text" name="text3" />

我现在想要用代码的方式吧这3个tag标签注释掉,就像这样:

<!--<input type="text" name="text1" />-->

<!--<input type="text" name="text2" />-->

<!--<input type="text" name="text3" />-->

因为页面还有其他标签,所以我不知道怎么匹配这3个标签同时将每个标签外面加注释符号,前面的好匹配,把<input type="text"替换成<!--<input type="text",但是他的结束符不知道怎么替换,如果将 />替换成 />-->的话,那么页面所有的 />都会被替换。也有想过用正则,用正则把<input type="text" />这一段匹配出来,替换的时候只要满足正则要求,都直接在外面加注释,但是也不知道怎么弄。

分数不多了,帮个忙!!!

那寻的主页 那寻 | 初学一级 | 园豆:7
提问于:2013-03-01 14:53
< >
分享
最佳答案
0

已我用的notepad++为例子

替换 (<input type="text"[^>]*>)为<!--\1-->

收获园豆:20
飞来飞去 | 老鸟四级 |园豆:2057 | 2013-03-01 15:28

能匹配到,但是怎么在外面加注释呢?

System.Text.RegularExpressions.Regex.Replace(strHTML, @"<input type="text"[^>]*>", "<!--" + @"<input type="text"[^>]*>" + "-->");

我这样写的,把strHTML里符合正则@"<ers:[^>]*>"的都在外面加个注释,但是为什么他把

"<!--" + @"<input type="text"[^>]*>" + "-->"

当成了替换后的字符串呢,我这样写,替换后页面就显示

<!--<input type="text"[^>]*>-->

我是要他显示这样:<!--<input type="text" name="text3" />-->

那寻 | 园豆:7 (初学一级) | 2013-03-01 15:56
其他回答(3)
0
 var ss =   '<input type="text" name="text1" />'.replace(/(<input type="text" name="text[0-9]" \/>)/g,'<!--$1-->');

alert(ss);

 ss =   '<input type="text" name="text2" />'.replace(/(<input type="text" name="text[0-9]" \/>)/g,'<!--$1-->');

alert(ss);

我写了个简单的列子 ,你直接放到html 试试看。

紫炁星 | 园豆:57 (初学一级) | 2013-03-01 15:57
0

我用js写的代码

 var str = "<input type=\"text\" name=\"text1\" />  ";
            var regx = /(<input\s+type\s*=\s*"text"\s+name\s*=\s*"[^"]*"\s*\/>)/g;
            var result = str.replace(regx,"<!--"+"$1"+"-->");

正则表达式那一部分肯定一样,具体使用c#里面那个方法这个我没用过,你自己查一下吧!

追梦的远远 | 园豆:220 (菜鸟二级) | 2013-03-01 16:01
0

string result=Regex.Replace(yourHtml,@"(<input.*?type="text".*?/>)","<!--$1-->");

收获园豆:10
Yu | 园豆:12990 (专家六级) | 2013-03-01 20:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册