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

遇到一个正则表达式有关问题,很奇怪

2012-06-20 
遇到一个正则表达式问题,很奇怪啊C# codeusing Systemusing System.Collections.Genericusing System.Li

遇到一个正则表达式问题,很奇怪啊

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;namespace justTest{    class RegularExp    {        public static void getSearchData()        {            [color=#FF0000]//string _regularExp = "<span class=[^>].*>(.*?)</";            string _regularExp = "<div class=\"zitifree\">\\s([^<].*)\\s</div>|<span class=[^>].*>(.*?)</";[/color]            string _content0 = "<div class=\"zitifree\">\n历下区义忠汽车修理厂\n</div>\n\n</div>\n<div class=\"right\">\n</div>\n</div>";            string _content1 = "\n<div class=\"xian\">\n</div>\n<div class=\"content\">\n<div class=\"sidenei\">\n<div class=\"nei\">\n联&nbsp;&nbsp;系&nbsp;&nbsp;人: <span class=\"lblLinkMan\">王立强</span>";            string _content2 = "\n</div>\n<div class=\"nei\">\n联系电话: <span class=\"lbltel\">053186950690</span>";            string _content3 = "\n</div>\n<div class=\"nei\">\n邮政编码: <span class=\"lblPostalCode\">250013</span>\n</div>\n<div class=\"nei\">\n电子邮箱: <span class=\"lblemail\">aaa@gmail.com</span>\n</div>\n<div class=\"nei\">\n公司地址: <span class=\"lblweb\">山东省济南市历下区历山路36号</span>\n</div>\n</div>\n</div>";            string _contentAll = _content0 + _content1 + _content2 + _content3;            Regex regexName = new Regex(_regularExp, RegexOptions.None);            Match matchName = regexName.Match(_contentAll);            int i = 0;            bool regularState = true;            searchData ues=new searchData();            while (matchName.Success)            {                string text1 = matchName.Result("$1").Trim();                //利用正则表达式来获取search对象的详细内容                switch (i)                {                    case 0: ues.Name = text1; break;                    case 1: ues.Person = text1; break;                    case 2: ues.Photo = text1; break;                    case 3: ues.Youbian = text1; break;                    case 4: ues.Youxiang = text1; break;                    case 5: ues.Address = text1; break;                    //出现这种情况下说明出错了 匹配正则表达式 出现错误                    default:                        regularState = false; break;                }                matchName = matchName.NextMatch();                i++;            }            Console.WriteLine(ues.Name);            Console.WriteLine(ues.Person);            Console.WriteLine(ues.Photo);            Console.WriteLine(ues.Youbian);            Console.WriteLine(ues.Youxiang);            Console.WriteLine(ues.Address);        }    }    public struct searchData    {       public string  Name;       public string Person;       public string Photo;       public string Youbian;       public string Youxiang;       public string Address;    }}



哪位熟悉正则表达式的人帮我看看。
我就只想筛选出企业名称 和联系人 等信息。但是现在这个正则表达式 中间用| 联系,只能出来 最左边条件的正则表达式

[解决办法]
[code=C#][/code]
string _regularExp = "<div class=\"zitifree\">\\s([^<].*)\\s</div>|<span class=[^>].*>(.*?)</";
C# code
=>string _regularExp = "<div class=\"zitifree\">\\s+(?<value>[^<].*)\\s+</div>|<span class=[^>].*>(?<value>.*?)</"; 

热点排行