亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

數往知來C#之正則表達式委托XML<六>

2019-11-14 14:00:49
字體:
來源:轉載
供稿:網友

C# 正則表達式篇

一、正則表達式
正則表達式就是一個字符串,不要想著一下子可以寫出一個通用的表達式,先寫,不正確再改
寫正則表達式就是在找規律
關鍵字:Regex   
--》引入命名空間  System.Text
常用的方法
1、 匹配:
   --》Regex.IsMatch(要匹配的字符串,正則表達式); 判斷指定的正則表達式和指定的字符串是否匹配
如果匹配返回true,否則返回false
 

Console.WriteLine("請輸入郵政編碼");            string regex = @"^/d{6}$";            if (Regex.IsMatch(Console.ReadLine(), regex))            {                Console.WriteLine("輸入正確");            }            else            {                Console.WriteLine("error");            }

          

2、 提取: 
  -->Regex.Match(要提取的字符串,正則表達式);
在指定的字符串中提取指定的正則表達式匹配的字符,  Match只提取第一個匹配到的數據。
       

string regex = @"^(http|ftp):///w+(/./w+)+//w+/./w+/?/w+=/w+(&/w+=/w+)*";            string ip = "modaorong@QQ.com";            string regex = @"/w+@(/w+/./w+)/.*";            Match m = Regex.Match(IP, regex);            Console.WriteLine(m.Groups[1].Value);


   --》Regex.Matchs      
   Matchs提取所有需要的數據,
會返回一個MatchCollection集合,沒一個匹配上的數據就是這個集合的一個元素
      

string time = "June    26,     1951";            string regex = @"(/w+)/s*(/d+),/s*(/d+)";            MatchCollection mc = Regex.Matches(time, regex);            foreach (Match m in mc)            {                Console.WriteLine("月{0}   日{1}   年{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[3].Value);            }


3、提取組
()在正則表達式里的意思就是優先級和分組的意思,在正則表達式里沒遇到一個左圓括號“(”就分一組,
如果沒有分組那么整個匹配到的結果就是一組,也就是Groups[0],  Groups[i].Value  就是匹配到的
數據的第i組的值
    

string day = "2012/05/30";            Console.WriteLine(Regex.Replace(day, @"(/d+)/(/d+)/(/d+)", "$1年$2月$3日"));


提取網頁的html代碼
  --》WebClient類 (導入命名空間  System.net)
      string str=實例名.DownloadString(IP地址);      //會返回一個字符串 
提取的結果亂碼可以設置encoding屬性
實例名.Encoding
貪婪模式與非貪婪模式
取消貪婪模式  +號后面加個?
如果不取消貪婪模式就會盡可能多的匹配,如果一個表達式里出現多個貪婪模式,那么第一個就會盡可能多的匹配,
后面的全都會默認的變成非貪婪,當第一個標記為非貪婪模式那么第二個就會貪婪后面的非貪婪

string path = @"C:/154/2FDF/3FF/4dfgf/5dgdgd/6gd/7dgd/8dgg/9dg/0.txt";            string regex = @"(.+)//(.+)//(.+)//(/w+/./w+)";//第一個.+是貪婪模式,所以會從盡可能多的匹配,所以第一個.+會一直匹配到7dgd/這里,而第二個第三個.+此時就默認為非貪婪模式,            Match mc= Regex.Match(path, regex);            //第二個會匹配8dgg,第三個匹配9dg            Console.WriteLine("{0}/r/n{1}/r/n{2}",mc.Groups [1].Value ,mc.Groups [2].Value ,mc.Groups [3].Value );            Console.ReadKey();

   

擴展: 反斜線(*****)
在C#中  /表示轉義,   //表示一個斜線(在文本中)   ////表示正則表達式中的一個斜線
在正則表達式中    / 表示轉義   //表示一個斜線(正則表達式中)

C# 委托篇

四、委托
為什么要有委托
  --》實現回調  (就是把方法注冊給委托變量,然后傳出去,然后再外面調用執行這個方法的時候會調回原來的地方執行這個方法)
  --》實現多線程
--》自定義執行
委托與指針的區別
  --》委托是一個類型,使用的時候,是在使用委托變量,委托是類型安全的,委托的本質就是類。
  --》指針式非安全代碼,是面向過程的,是地址的一個指向
關鍵字:delegate
      -->delegate void 委托類型名();
訪問修飾符只有兩個:public/PRiveta    
委托是類型安全的
  

delegate bool DelegateMFunc(int i);    delegate void DelegateFunc();    class Person    {        public void Func()        {            Console.WriteLine("哈哈");        }    }    class Program    {        static void Main(string[] args)        {            //Person p = new Person();            //DelegateFunc DFunc;            //DFunc = p.Func;            //DFunc();            DelegateMFunc MyFuncs;            MyFuncs = MyFunc;            bool b= MyFuncs(20);            Console.WriteLine(b);            Console.ReadKey();        }        static bool MyFunc(int num)        {            Console.WriteLine("我的Func");            return num % 2 == 0 ? true : false;        }    }

用委托實現方法回調的一個簡單的案例

namespace _09委托_方法回調{                                            Form1    //聲明一個委托    public delegate void DFunc();    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        DFunc NewFunc;//定義一個委托變量        private void button1_Click(object sender, EventArgs e)        {            //給委托變量注冊            NewFunc = MyFunc;            Form2 form2 = new Form2(NewFunc);//new一個Form2窗體,在構造方法中把委托變量傳過去            form2.Show();//彈窗        }        //這個方法是給委托變量注冊的        private void MyFunc()        {              textBox1.Text = "Hello";        }    }}


                                                                       //Form2

namespace _09委托_方法回調{    public partial class Form2 : Form    {        public Form2()        {            InitializeComponent();        }        DFunc MyDele;//定義一個委托變量        //寫一個構造函數的重載,有一個參數 用來接收Form1傳過來的委托變量        public Form2(DFunc c)        {            this.MyDele = c;//把Form1傳過來的委托變量賦給上面定義好的委托變量            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            MyDele();//這里使用委托變量實現了回調Form1的函數        }    }}

C#  委托篇(三連擊事件)

寫事件必須要有委托

namespace _13三連擊事件{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            myButton1.MyClik += new threeButtonDelegate(MyShow);            }        void myButton1_MyClik()        {            throw new NotImplementedException();        }        private void MyShow()        {            MessageBox.Show("哈哈,我又變帥了!");        }    }}   public delegate void threeButtonDelegate();    class MyButton:Button    {        public event  threeButtonDelegate MyClik;        int i = 0;        protected override void OnClick(EventArgs e)        {            i++;            if (i==3)            {                if (MyClik !=null)                {                    MyClik();                }                i=0;            }        }    }

C# xml

五、XML
XML就相當于一個小型的數據庫,只不過是以txt來保存
-》大小寫敏感
-》只可以有一對根節點
-》標簽必須成對出現,
-》標簽有開始必須有結束,如果只有一個標簽,也要有<test/>結束
-》屬性賦值時要用引號引起來

寫入               //添加一個根節點            XElement xeRoot = new XElement("Root");            for (int i = 0; i < 10; i++)            {   //new一個子節點,在構造方法里面給節點命名                XElement xePerson = new XElement("Person");                //用Add方法添加,參數是要添加到哪個根節點就傳哪個根節點的對象                xeRoot.Add(xePerson);                XElement xeName = new XElement("Name");                xePerson.Add(xeName);                XElement xeAge = new XElement("Age");                xePerson.Add(xeAge);                XElement xeSex = new XElement("Sex");                xePerson.Add(xeSex);                xePerson.SetAttributeValue("id", i);                //通過Value給節點賦值                xeName.Value = "張三" + i;                xeAge.Value = "20";                xeSex.Value = "";            }            xeRoot.Save("E://students.xml"); //保存讀取             //Loed方法獲得XML文檔,參數是要獲得XML文檔的路徑            XDocument xDoc= XDocument.Load(@"E:/students.xml");            XElement xeRoot =xDoc.Root;//獲得這個XML文檔的根節點名,            DiGui(xeRoot);//遞歸調用,把根接待你名傳過去            Console.ReadKey();        }        static void DiGui(XElement xe)        {    //循環根節點,            foreach (XElement item in xe.Elements())            {                //判斷是否是最后一層子元素                if (!item.HasElements)                {   //得到最后一層節點的名稱和里面的值                    Console.WriteLine(item.Name +"   "+item.Value );                }                        foreach (XAttribute xa in item.Attributes())                    {                        Console.WriteLine("屬性:{0}  值:{1}", xa.Name, xa.Value);                    }                //遞歸調用,如果這個節點下面還有節點就再繼續循環,知道最后一個節點為止                DiGui(item);            }        }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品香蕉av| 日韩一区二区福利| 亚洲精品小视频在线观看| 亚洲欧美一区二区激情| 57pao成人国产永久免费| 亚洲免费精彩视频| 日韩风俗一区 二区| 亚洲激情视频在线| 久久久久亚洲精品国产| 8050国产精品久久久久久| 日韩大陆欧美高清视频区| 91国产美女在线观看| www.午夜精品| 亚洲黄色成人网| 精品久久中文字幕久久av| 国产在线a不卡| 欧美日韩国产中文字幕| 538国产精品一区二区在线| 亚洲精品久久视频| 亚洲最新中文字幕| 国产精品自在线| 精品网站999www| 精品人伦一区二区三区蜜桃免费| 国产91色在线免费| 日本免费久久高清视频| 粗暴蹂躏中文一区二区三区| 日韩电影免费在线观看中文字幕| 久久男人资源视频| 最近2019年中文视频免费在线观看| 国产不卡av在线| 97欧美精品一区二区三区| 欧美乱妇40p| 亚洲欧洲av一区二区| 欧亚精品中文字幕| 欧美剧在线观看| www.亚洲人.com| 亚洲最大的av网站| 久久精品国产亚洲一区二区| 欧美日韩亚洲精品一区二区三区| 欧美日韩在线另类| 这里只有精品视频在线| 国外成人在线直播| 91在线|亚洲| 国产精品福利在线观看网址| 亚洲精品国产免费| 国产97色在线|日韩| 欧美老少做受xxxx高潮| 亚洲aaa激情| 欧美激情区在线播放| 日韩精品在线影院| 美女精品视频一区| 国产精品日韩一区| 亚洲精品v天堂中文字幕| 亚洲a级在线播放观看| 欧美日韩在线视频观看| 国产精品69久久| 国产精品国产亚洲伊人久久| 26uuu国产精品视频| 成人黄色生活片| 国产成人亚洲综合青青| 最近更新的2019中文字幕| 欧美电影在线观看高清| 亚洲日韩中文字幕在线播放| 亚洲一区国产精品| 亚洲日韩中文字幕| 国产视频精品xxxx| 亚洲人av在线影院| 日本成人激情视频| 日韩精品免费视频| 日韩美女在线看| 亚洲激情 国产| 性金发美女69hd大尺寸| 亚洲第一精品夜夜躁人人爽| 国产精品第七影院| 高跟丝袜欧美一区| 92福利视频午夜1000合集在线观看| 国产拍精品一二三| 欧美裸体男粗大视频在线观看| 91精品国产777在线观看| 亚洲精品少妇网址| 日韩一二三在线视频播| 欧美激情a∨在线视频播放| 欧美精品久久久久久久久久| 国产精品入口日韩视频大尺度| 亚洲视频在线观看免费| 亚洲国产一区自拍| 欧美一乱一性一交一视频| 亚洲欧美另类国产| 日韩va亚洲va欧洲va国产| 久久视频在线播放| 成人做爽爽免费视频| 久久久国产精品亚洲一区| 热久久视久久精品18亚洲精品| 国产视频精品一区二区三区| 日韩一区av在线| 亚洲人av在线影院| 国产精品稀缺呦系列在线| 日韩欧美一区视频| 81精品国产乱码久久久久久| 大荫蒂欧美视频另类xxxx| 91国语精品自产拍在线观看性色| 亚洲精品久久久久久久久| 在线视频日韩精品| 色综合视频网站| 欧美日韩加勒比精品一区| 国产精品久久久久久久美男| 国产成人精品日本亚洲专区61| 98午夜经典影视| 亚洲欧美国产一本综合首页| 成人精品一区二区三区| 国产日韩一区在线| 亚洲黄色成人网| 久久综合伊人77777蜜臀| 欧美激情亚洲激情| 国产欧美日韩91| 亚洲色图欧美制服丝袜另类第一页| 日韩美女视频中文字幕| 日本成人精品在线| 亚洲网站在线播放| 91精品美女在线| 国产精品美乳一区二区免费| 亚洲精品中文字幕女同| 亚洲免费福利视频| 久久久女女女女999久久| 久久精品亚洲一区| 久久久999国产| 伊人久久精品视频| 久久久久久久久久久久久久久久久久av| 日韩精品一区二区三区第95| 欧美极品少妇xxxxⅹ免费视频| 亚洲一区二区精品| 亚洲欧美一区二区三区在线| 欧美激情精品久久久久久蜜臀| 国产精品www网站| 人九九综合九九宗合| 国产精品视频最多的网站| 国产成人黄色av| 国产成人久久精品| 国产免费一区视频观看免费| 一区二区三区国产在线观看| 国产一区二区黑人欧美xxxx| 国产精品专区h在线观看| 国产视频精品在线| 成人欧美一区二区三区黑人| 中文字幕精品在线视频| 成人午夜一级二级三级| 久久91超碰青草是什么| 国产美女精品免费电影| 国产精品国产三级国产aⅴ9色| 羞羞色国产精品| 68精品国产免费久久久久久婷婷| 国产丝袜一区二区| 中文字幕综合在线| 狠狠色狠狠色综合日日小说| 韩国19禁主播vip福利视频| www.亚洲人.com| 国产视频久久久久久久| 国产精品极品在线| 亚洲天堂av在线播放| 最近中文字幕日韩精品| 精品视频久久久久久| 国产午夜精品久久久| 色婷婷综合成人av| 久久99亚洲热视|