首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

遍历过滤数据 存入数组,该怎么处理

2012-02-09 
遍历过滤数据 存入数组要求得到一个数组保存了这些值如:[手机制式][GSM]是数组的一个元素tablecellspacin

遍历过滤数据 存入数组
要求得到   一个数组   保存了这些值   如:[手机制式][GSM]   是数组的一个元素        
<table   cellspacing= "0 "   cellpadding= "0 "   width= "677 "   border= "0 ">
            <tbody>
                <tr>
                    <td> 手机制式 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> GSM </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 网络传输 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> GPRS </td>
                </tr>
                <tr>
                    <td> 支持频段 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> GSM(900/1800/1900MHz) </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 手机类型 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 直立式 </td>
                </tr>
                <tr>
                    <td> 通话时间(分钟) </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 210 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 待机时间(小时) </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 260 </td>
                </tr>
                <tr>
                    <td> 智能手机 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>


                    <td> Symbian系统 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 操作系统 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> Symbian   OS   8.1a </td>
                </tr>
                <tr>
                    <td> 上市时间 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 2006-08 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 机身内存 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 20MB动态内存 </td>
                </tr>
                <tr>
                    <td> 内屏颜色 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 26万色 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 屏幕尺寸 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 176×208像素 </td>
                </tr>
                <tr>
                    <td> 外屏颜色 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 无 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 数码相机功能 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>


                    <td> 内置 </td>
                </tr>
                <tr>
                    <td> 数码相机感光元件 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> CMOS </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 数码相机像素(万) </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 200 </td>
                </tr>
                <tr>
                    <td> 和弦铃声 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 64和弦铃声 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 支持蓝牙技术 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 支持 </td>
                </tr>
                <tr>
                    <td> MP3播放 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 支持 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 支持存储卡 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> RS-MMC </td>
                </tr>
                <tr>
                    <td> 收音机功能 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>


                    <td> 支持 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 来电防火墙 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 不支持 </td>
                </tr>
                <tr>
                    <td> 手写输入 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 不支持 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 电子邮件 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 支持 </td>
                </tr>
                <tr>
                    <td> 中文输入方式 </td> <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 笔划,拼音等 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 红外接口 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 不支持 </td>
                </tr>
                <tr>
                    <td> 电话簿容量 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 以内存为限 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 电话簿分组 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 支持 </td>


                </tr>
                <tr>
                    <td> 话机短信息容量 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> 以内存为限 </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> ? </td>
                    <td   width= "1 "   bgcolor= "#cccccc "> </td>
                    <td> ? </td>
                </tr>
            </tbody>
        </table>

[解决办法]
不太清楚楼主的意图,如果只是为了编辑省事的话,可以用下面这个方法:

如果你在使用EmEditor,新建一个宏文件(即*.jsee),输入下面的内容:
document.selection.Replace( "^(:?.+) <td> (:?[^td]+) </td> .*$|^.+$ ", "\\2 ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace( "\\n\\n ", "\\n ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace( "\\n\\n ", "\\n ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace( "\\n\\n ", "\\n ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace( "^.+$ ", "[\\0] ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace( "\\n ", " ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace( "\\[[^\\]]+\\]\\[[^\\]]+\\] ", "\x22\\0\x22, ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
保存一下。

打开EmEditor,选择 Macros 菜单,选择 Select... 项,加载你刚保存的这个宏文件。

将源HTML复制到当前窗口中,按F4。

生成的结果大致如下:
"[手机制式][GSM] ", "[网络传输][GPRS] ", "[支持频段][GSM(900/1800/1900MHz)] ", "[手机类型][直立式] ", "[通话时间(分钟)][210] ", "[待机时间(小时)][260] ", "[智能手机][Symbian系统] ", "[操作系统][Symbian OS 8.1a] ", "[上市时间][2006-08] ", "[机身内存][20MB动态内存] ", "[内屏颜色][26万色] ", "[屏幕尺寸][176×208像素] ", "[外屏颜色][无] ", "[数码相机功能][内置] ", "[数码相机感光元件][CMOS] ", "[数码相机像素(万)][200] ", "[和弦铃声][64和弦铃声] ", "[支持蓝牙技术][支持] ", "[MP3播放][支持] ", "[支持存储卡][RS-MMC] ", "[收音机功能][支持] ", "[来电防火墙][不支持] ", "[手写输入][不支持] ", "[电子邮件][支持] ", "[中文输入方式][笔划,拼音等] ", "[红外接口][不支持] ", "[电话簿容量][以内存为限] ", "[电话簿分组][支持] ", "[话机短信息容量][以内存为限] ", "[?][?] ",

稍微修改一下就可以用了。
[解决办法]
使用正则表达式:this.tbOld.Text是源字符串,sb里存储的是替换后的字符串。

Regex regex = new Regex(@ " <td> (.*?) </td> ", RegexOptions.Singleline);

MatchCollection mc = regex.Matches(this.tbOld.Text);

StringBuilder sb = new StringBuilder();
sb.Append( "\ " ");

for (int i = 0; i < mc.Count; ++i)
{
if (i > 0 && i % 2 == 0)


sb.Append( "\ ",\ " ");

sb.Append(String.Format( "[{0}] ", mc[i].Groups[1].Value));
}
sb.Append( "\ " ");

this.tbNew.Text += sb.ToString();

运行结果:
"[手机制式][GSM] ", "[网络传输][GPRS] ", "[支持频段][GSM(900/1800/1900MHz)] ", "[手机类型][直立式] ", "[通话时间(分钟)][210] ", "[待机时间(小时)][260] ", "[智能手机][Symbian系统] ", "[操作系统][Symbian OS 8.1a] ", "[上市时间][2006-08] ", "[机身内存][20MB动态内存] ", "[内屏颜色][26万色] ", "[屏幕尺寸][176×208像素] ", "[外屏颜色][无] ", "[数码相机功能][内置] ", "[数码相机感光元件][CMOS] ", "[数码相机像素(万)][200] ", "[和弦铃声][64和弦铃声] ", "[支持蓝牙技术][支持] ", "[MP3播放][支持] ", "[支持存储卡][RS-MMC] ", "[收音机功能][支持] ", "[来电防火墙][不支持] ", "[手写输入][不支持] ", "[电子邮件][支持] ", "[中文输入方式][笔划,拼音等] ", "[红外接口][不支持] ", "[电话簿容量][以内存为限] ", "[电话簿分组][支持] ", "[话机短信息容量][以内存为限] ", "[?][?] "

热点排行