正則表達式——匹配數字


本文將建立一個winform項目中匹配找出文本中所有數字的簡單實例,以下是詳細步驟:


新建一個winform項目,為了便於演示,簡單的布局如下:


代碼如下(需要using System.Text.RegularExpressions;):

        private void button1_Click(object sender, EventArgs e)
        {
            this.listBox1.Items.Clear();

            //匹配的正則表達式
            Regex r = new Regex(@"([1-9]\d*\.?\d*)|(0\.\d*[1-9])");

            //開始匹配
            Match m = r.Match(this.textBox1.Text);

            while (m.Success)
            {
                //匹配成功
                this.listBox1.Items.Add(m.Groups[0].Value);

                //從上一個匹配結束的位置開始下一個匹配
                m = m.NextMatch();
            }
        }

用於匹配的正則表達式為:([1-9]\d*\.?\d*)|(0\.\d*[1-9])

(

[1-9] :匹配1~9的數字;

\d :匹配數字,包括0~9

* :緊跟在 \d 之后,表明可以匹配零個及多個數字;

\. :匹配小數點

? :緊跟在 \. 之后,表明可以匹配零個或一個小數點;

0 :匹配一個數字0

)
其中的 [1-9]\d*\.?\d* 用以匹配諸如:1、23、34.0、56.78 之類的非負的整數和浮點數

其中的 0\.\d*[1-9] 用以匹配諸如:0.1、0.23、0.405 之類的非負浮點數


F5運行程序,文本框輸入欲匹配的文本內容,點擊按鈕結果如下:

根據業務的需要,我們可以運用正則表達式達成目標,比起繁瑣的字符串處理,正則表達式的高效和靈活是無與倫比的,

本例重在說明.net中,運用正則regex的方法,包括:

Regex:正則表達式的實例;

Match: 一次正則表達式的匹配結果;

  -m.Success:指示匹配是否成功;

  -m.NextMatch:從上一個匹配結束的位置開始下一個匹配;

正則表達式的語法在這里就不再贅述了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM