您的位置:首页 > 其它

正则表达式——匹配数字

2013-06-23 20:49 507 查看
本文将建立一个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:从上一个匹配结束的位置开始下一个匹配;

正则表达式的语法在这里就不再赘述了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: