正则表达式——匹配数字

本文将建立一个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:从上一个匹配结束的位置开始下一个匹配;

正则表达式的语法在这里就不再赘述了。

posted on 2012-06-28 11:05  影天  阅读(54008)  评论(0编辑  收藏  举报

导航