您的位置:程序门 -> .net技术 -> c#



急急急啊,马上给分,用正则表达式取<font>和</font>间内容


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


急急急啊,马上给分,用正则表达式取<font>和</font>间内容[已结贴,结贴人:yuewh491]
发表于:2007-01-22 12:12:14 楼主
<font> 阿斯顿飞金卡手机 </font>
请问大家我想对中间的字符串进行截取,
结果成 <font> 阿斯顿... </font>
请问大家怎么做啊,急四我了
发表于:2007-01-22 12:14:071楼 得分:0
font里可能有颜色
<font   color=#00000> 阿斯顿飞金卡手机 </font>
怎么做啊,谢谢喇
发表于:2007-01-22 12:19:172楼 得分:0
大家来啊
发表于:2007-01-22 12:25:353楼 得分:0
试下
(? <= <font[\s\s]*?> )([\s\s]*?)(?= </font> )
发表于:2007-01-22 12:30:444楼 得分:0
怎么用啊
system.text.regularexpressions.regex.replace(str, "(? <= <font[\s\s]*?> )([\s\s]*?)(?= </font> ) ", " ");
是这样嘛,报错啊
发表于:2007-01-22 12:35:285楼 得分:0
try..

                        string   str   =   " <font> 阿斯顿飞金卡手机 </font> ";
                        string   s   =   regex.match(str,   @ " <font> ([\s\s]+) </font> ").groups[1].value;
                        console.writeline(s);
发表于:2007-01-22 12:35:466楼 得分:0
don 't   forget  

using   system.text.regularexpressions;
发表于:2007-01-22 12:36:507楼 得分:0
string   yourstr   =   ................;
match   m   =   regex.match(yourstr,   @ "(? <= <font[\s\s]*?> )([\s\s]*?)(?= </font> ) ",   regexoptions.ignorecase);
richtextbox1.text   =   m.groups[1].value;         //要提取的内容
发表于:2007-01-22 12:38:088楼 得分:0
sorry..

try..

                        string   str   =   " <font   color=#00000> 阿斯顿飞金卡手机 </font> ";
                        string   s   =   regex.match(str,   @ " <font[\s\s]*> ([\s\s]+) </font> ").groups[1].value;
                        console.writeline(s);


输出:
阿斯顿飞金卡手机
发表于:2007-01-22 12:39:169楼 得分:10
mark
发表于:2007-01-22 12:39:5310楼 得分:0
或者这样
string   yourstr   =   ................;
string   resultstr   =   regex.replace(yourstr,   @ " <font[\s\s]*?> ([\s\s]*?) </font> ", "$1 "   ,   regexoptions.ignorecase);
richtextbox1.text   =   resultstr;         //要提取的内容
发表于:2007-01-22 12:43:0111楼 得分:0
谢谢,trying~
发表于:2007-01-22 12:51:4312楼 得分:0
这样不行啊,我只是想把 <font   color=#00000> 阿斯顿飞金卡手机 </font>
中的文字截取一部分,但还是要保留 <font   color=#00000> </font>
用上面的方法就把 <font   color=#00000> </font> 去掉了啊
发表于:2007-01-22 12:53:4013楼 得分:0
汗,要保留哪部分,内容是确定的还是不确定的
如果不确定,有什么规律或是可以给出什么限定条件
发表于:2007-01-22 12:55:2014楼 得分:0
要把 <font   color=#00000> 阿斯顿飞金卡手机 </font> 中的阿斯顿飞金卡手机截掉一部分
变成 <font   color=#00000> 阿斯顿飞... </font>
发表于:2007-01-22 12:59:1315楼 得分:0
把我搞糊涂了,你所要替换的内容 <font   color=#00000> 阿斯顿飞金卡手机 </font> 中,除了 <font   color=#00000> 里的内容会变,其它都是固定的吗,还有你替换后的,那个“...”是什么啊,还是就要替换成“阿斯顿飞...”这个字符串
发表于:2007-01-22 13:02:0216楼 得分:0
就是如果要是长的话就截取前几个字,后面加省略号啊
发表于:2007-01-22 13:03:3317楼 得分:0
那要截取几个字呢,给个位数吧
发表于:2007-01-22 13:03:4918楼 得分:0
我要是直接截取 <font   color=#00000> 阿斯顿飞金卡手机 </font> 的文字的话,不就把后面的 </font> 都给截了么,所以就要只截里面的文字的长度,外面的html代码保留
发表于:2007-01-22 13:06:0319楼 得分:0
我现在就是不知道怎么把 <font   color=#00000> 阿斯顿飞金卡手机 </font> 里面的文字截取
截的时候是把整个 <font   color=#00000> 阿斯顿飞金卡手机 </font> 当作一个字符串的啊,所以要找个方法只截里面的文字,外面的不动
发表于:2007-01-22 13:10:0120楼 得分:40
string   yourstr   =   ................;
string   resultstr   =   regex.replace(yourstr,   @ "( <font[\s\s]*?> )([\s\s]{3})[\s\s]*?( </font> ) ", "$1$2...$3 "   ,   regexoptions.ignorecase);
richtextbox1.text   =   resultstr;         //替换后的内容

这样,我上面是截了3位的,看到( <font[\s\s]*?> )([\s\s]{3})[\s\s]*?( </font> )这里面的{3}了吧,你想截几位就必成几吧,但是要求 <font> 与 </font> 之间的内容一定要超过三个字符的,否则不会成功,$1$2...$3这里是把不想要的内容替换为“...”了,也可以换成其它你想要的
发表于:2007-01-22 13:12:5221楼 得分:0
谢谢喇,就是这样,正则表达式好复杂啊
结贴
发表于:2007-01-22 13:15:0022楼 得分:0
其实只要需求明确了,只要正则能做到的,写出正则还是很容易的
发表于:2007-01-22 13:21:4323楼 得分:0
……
沾光了,我好像没回答问题。路过也有分。
发表于:2007-01-22 13:40:1624楼 得分:0
<     font   > 这样的能匹配么
发表于:2007-01-22 22:04:3925楼 得分:0
........


快速检索

最新资讯
热门点击