<script type="text/javascript">
var a='<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: \'Times New Roman\'; mso-hansi-font-family: \'Times New Roman\'">cccccccc。<SPAN title="232144567 " contentEditable=false style="POSITION: relative; TOP: 4px" name="232144567"><TABLE contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></TABLE></SPAN></SPAN>'
alert(a.replace(/<[^>]*?>/gm,""))
</script>
<TABLE contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD noWrap>321321μ</TD>
<TD noWrap><LABEL title=∴ contentEditable=false>
<TABLE contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD noWrap></TD>
<TD noWrap>
<TABLE class=n cellSpacing=0 cellPadding=0 width=0 border=0>
<TBODY>
<TR>
<TD>
<TABLE contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD noWrap><IMG src="http://192.19.19.200/SuperTeacherResource/upload/GX100Formula/math_Special/shuoyi.gif"></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></LABEL></TD></TR></TBODY></TABLE></SPAN></SPAN>
呵呵数据比较长。。这是第一步111111111111111"<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">啊啊啊啊啊 321321μ∴</span>
第二步是 这个结果111111111111111啊啊啊啊啊321321μ∴ 分俩步中间是有点东西要处理
<script type="text/javascript">var a='gg<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: \'Times New Roman\'; mso-hansi-font-family: \'Times New Roman\'">cccccccc。<SPAN title="232144567 " contentEditable=false style="POSITION: relative; TOP: 4px" name="232144567"><TABLE contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></TABLE></SPAN></SPAN>'
alert(a.replace(/^([^<]*?)(<[^>]*?>)(.*?)(<[^>]*?>)([^>]*?)$/m,function (a,b,c,d,e,f){return b+c+d.replace(/<[^>]*?>/gm,"")+e+f}))
</script>
这是第1部,第2部在2楼
var a="<span style='FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman'>啊啊啊啊啊。<span title='232144567' contentEditable=false style='POSITION: relative;TOP: 4px' name='232144567'><tabel contentEditable=false style='FONT-SIZE: 16px; FONT-FAMILY: Arial' cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span></span>";
var myReg = /(\<tabel(.*?)<\/tabel\>)/ig;
var myReg1 = /<span\s*title='(.*?)'(.*?)><\/span>/ig;
var myReg2=/<span(.*?)>(.*?)<\/span>/ig;
a=a.replace(myReg, "");
a=a.replace(myReg1, "$1");
alert(a);
a=a.replace(myReg2, "$2");
alert(a);
</script>
var a="<span style='FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman'>啊啊啊啊啊。<span title='232144567' contentEditable=false style='POSITION: relative;TOP: 4px' name='232144567'><tabel contentEditable=false style='FONT-SIZE: 16px; FONT-FAMILY: Arial' cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span></span>";
var myReg = /(\<tabel(.*?)<\/tabel\>)/ig;//可以省不要
var myReg1 = /<span\s*title='(.*?)'(.*?)><\/span>/ig;
var myReg2=/<span(.*?)>(.*?)<\/span>/ig
a=a.replace(myReg, "");;//可以省不要
a=a.replace(myReg1, "$1");
alert(a);
a=a.replace(myReg2, "$2");
alert(a);
</script>
var a='<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman">啊啊啊啊啊。<span title="232144567" contentEditable=false style="POSITION: relative;TOP: 4px" name="232144567"><tabel contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span></span>';
//var myReg = /(\<tabel(.*?)<\/tabel\>)/ig;
var myReg1 = /<span\s*title=\"(.*?)\"(.*?)><\/span>/ig;
var myReg2=/<span(.*?)>(.*?)<\/span>/ig;
//a=a.replace(myReg, "");
a=a.replace(myReg1, "$1");
alert(a);
a=a.replace(myReg2, "$2");
alert(a);
var b='<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman">啊啊啊啊啊。<span title="232144567" contentEditable=false style="POSITION: relative;TOP: 4px" name="232144567"><tabel contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span></span>';
var myReg = /<span(.*?)\>(.*?)\<span(\s*)title=\"(.*?)\"(.*?)<\/span><\/span>/ig;
b=b.replace(myReg, "$2$4");
alert(b);
</script>
只要第二个结果的
//表达式1
var re1 = /(<span[^>]*>[\s\S]*?)<span[^>]*?title\s*=\s*["']?([^"'\s>]*)[^>]*>[\s\S]*?<\/span>([\s\S]*?<\/span>)/ig;
//第一步
var str1 = str.replace(re1,"$1$2$3");
//表达式2
var re2 = /<span[^>]*>([\s\S]*?)<\/span>/ig;
//第二步
var str2 = str1.replace(re2,"$1");
alert(str1);
alert(str2);
...
string str = "<span style=\"FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman\">啊啊啊啊啊。<span title=\"232144567\" contentEditable=false style=\"POSITION: relative;TOP: 4px\" name=\"232144567\"><tabel contentEditable=false style=\"FONT-SIZE: 16px; FONT-FAMILY: Arial\" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span></span>";
string re1 = @"(<span[^>]*>[\s\S]*?)<span[^>]*?title\s*=\s*[""']?([^""'\s>]*)[^>]*>[\s\S]*?</span>([\s\S]*?</span>)";
string re2 = @"<span[^>]*>([\s\S]*?)</span>";
string str1 = Regex.Replace(str, re1,"$1$2$3", RegexOptions.IgnoreCase);
string str2 = Regex.Replace(str1, re2, "$1", RegexOptions.IgnoreCase);
321321321321321
<SPAN title="啊啊啊啊32132" contentEditable=false style="POSITION: relative; TOP: 4px" name="啊啊啊啊32132 ">
<TABLE contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD noWrap>啊啊啊啊32132 </TD>
</TR>
</TBODY>
</TABLE>
</SPAN>
就会有错误了。 不是321321321321321 啊啊啊啊32132这个结果了。
而是下面的结果了
321321321321321 <TABLE contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD noWrap>啊啊啊啊32132 </TD>
</TR>
</TBODY>
</TABLE>
有可能是
111<span>无title <span title='有title '>有title </span></span> 结果是 111 无title 有title(有title的是取的span title)333<span title='有title'>有title</span>222 结果是 333 有title 222<span>无title</span>222 结果是 无title 222
用JS写 分俩个步骤。第一个步骤 保留无title span和span外面内容。 有title span 不保留只留下 span的title
第二部分 去掉外面的span 保留内容就行。
var a='dgdgdgdgdgf<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman">啊啊啊啊啊。<span title="232144567" contentEditable=false style="POSITION: relative;TOP: 4px" name="232144567"><tabel contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span>dggdgdfgfd</span>dgfddggf';
//var myReg = /(\<tabel(.*?)<\/tabel\>)/ig;
var myReg1 = /<span\s*title=\"(.*?)\"(.*?)><\/span>/ig;
var myReg2=/(.*?)<span(.*?)>(.*?)<\/span>(.*?)/ig;
//a=a.replace(myReg, "");
a=a.replace(myReg1, "$1");
alert(a);
a=a.replace(myReg2, "$1$3$4");
alert(a);
</script>
只把/改为@"和"匹配就可以了
//var str = "111\n<span>无title <span title='有title '>有title </span> </span> 结果是 111 无title 有title(有title的是取的span title)\r\n333 <span title='有title'>有title </span>222 结果是 333 有title 222\r\n<span>无title </span>222 结果是 无title 222";
var str = "321321321321321\n<SPAN title=\"啊啊啊啊32132\" contentEditable=false style=\"POSITION: relative; TOP: 4px\" name=\"啊啊啊啊32132 \">\n<TABLE contentEditable=false style=\"FONT-SIZE: 16px; FONT-FAMILY: Arial\" cellSpacing=0 cellPadding=0 border=0>\n<TBODY>\n<TR>\n<TD noWrap>啊啊啊啊32132 </TD>\n</TR>\n</TBODY>\n</TABLE>\n</SPAN>\n就会有错误了。 不是321321321321321 啊啊啊啊32132这个结果了。 \n而是下面的结果了\n321321321321321 <TABLE contentEditable=false style=\"FONT-SIZE: 16px; FONT-FAMILY: Arial\" cellSpacing=0 cellPadding=0 border=0>\n<TBODY>\n<TR>\n<TD noWrap>啊啊啊啊32132 </TD>\n</TR>\n</TBODY>\n</TABLE>"
var re1 = /<span\b[^>]*?title\s*=\s*["']?([^"'\s>]*)[^>]*>[\s\S]*?<\/span>/ig;
var str1 = str.replace(re1,"$1");
var re2 = /([^>]*?)<span\b[^>]*>([\s\S]*?)<\/span>([^<]*)/ig;
var str2 = str1.replace(re2,"$1$2$3");
alert(str1);
alert(str2);
using System.Text.RegularExpressions;
...
string str = "<span style=\"FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman\">啊啊啊啊啊。<span title=\"232144567\" contentEditable=false style=\"POSITION: relative;TOP: 4px\" name=\"232144567\"><tabel contentEditable=false style=\"FONT-SIZE: 16px; FONT-FAMILY: Arial\" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span></span>";
string re1 = @"<span\b[^>]*?title\s*=\s*[""']?([^""'\s>]*)[^>]*>[\s\S]*?</span>";
string re2 = @"([^>]*?)<span\b[^>]*>([\s\S]*?)</span>([^<]*)";
string str1 = Regex.Replace(str, re1,"$1", RegexOptions.IgnoreCase);
string str2 = Regex.Replace(str1, re2, "$1$2$3", RegexOptions.IgnoreCase);
<SPAN title=" [ ɔi əu a t ]" contentEditable=false style="POSITION: relative; TOP: 4px" name="[ ɔi əu a]"> </SPAN>
就会有错误了,他会少好多字符。 上面的title里有空格(这个空个不是 ) 不过我不能滤掉的
var re1 = /<span\b[^>]*?title\s*=\s*["']?([^"']*)[^>]*>[\s\S]*?<\/span>/ig;string re1 = @"<span\b[^>]*?title\s*=\s*[""']?([^""'>]*)[^>]*>[\s\S]*?</span>";
var a='dgdgdgdgdgf<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman">啊啊啊啊啊。<span title=" 23214456 7" contentEditable=false style="POSITION: relative;TOP: 4px" name="232144567"><tabel contentEditable=false style="FONT-SIZE: 16px; FONT-FAMILY: Arial" cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span>dggdgdfgfd</span>dgfddggf';
var b="dgdgdgdgdgf<span style='FONT-FAMILY: 宋体; mso-ascii-font-family: Times New Roman;mso-hansi-font-family: Times New Roman'>啊啊啊啊啊。<span title=' 23214456 7' contentEditable=false style='POSITION: relative;TOP: 4px' name='232144567'><tabel contentEditable=false style='FONT-SIZE: 16px; FONT-FAMILY: Arial' cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>232144567</TD></TR></TBODY></tabel></span>dggdgdfgfd</span>dgfddggf";
var myReg1 = /<span\s*title=[\"|\'](.*?)[\"|\'](.*?)><\/span>/ig;
var myReg2=/(.*?)<span(.*?)>(.*?)<\/span>(.*?)/ig;
a=a.replace(myReg1, "$1");
b=b.replace(myReg1, "$1");
alert(a);
alert(b);
a=a.replace(myReg2, "$1$3$4");
b=b.replace(myReg2, "$1$3$4");
alert(a);
alert(b);
</script>
我要是把中间的代码删除了。 匹配TITLE就正确了。 是不是串不能太长啊?
label 里面的title也给取了
一般都匹配前面的1111 span的 23232 span里的内容任何一个都不配合 img 223232
不可能取label 里面的title的
var b='2222222 <span title='333333 2323' ><table><tr><td>2323</td> <Td><label title='333333'>3333333 </label></td><td><img title='23'/></td> </span>22222 '
有TITLE的SPAN 里面非常的乱,标签(标签都有TITLE)什么样的都有,而且非常多, 所以只能要SPAN的title
这个有俩中情况 A 和 B
A的结果是 <span> 2222222 333333 2323 22222</span>
B的结果是 2222222 333333 2323 22222
这个现在就有错误
这只是很短的一个。
再乱也无所谓
主要的是你这的字符串根本没有固定的特征
如果只是单纯取SPAN的TITLE内容
那就简单
但你还取的其他内容
你看我44楼的帖 只要那样就行 2种情况。