使用RegEx从字符串中获取数字

时间:2014-10-09 17:57:19

标签: c# regex

我有一个字符串,看起来像这样:

"Lesson 2.3"

或者这个:

"Lesson 12.5"

有什么方法可以抓取 2.312.5或此字符串中具有相同格式的任何其他数字?我不是想把它变成一个double或float,我只想要 string 部分中包含数字,即“2.3”或“12.5”。

我尝试过使用RegEx,但我的尝试只返回第一个数字:

var number = Regex.Match(lessonTopicName, "\\d+").Value; // returns "2"

我对RegEx没有完全了解,所以我知道我做错了。我想编写一个方法,我可以传入字符串,并以字符串格式返回字符串中的数字,如果这是有道理的。

3 个答案:

答案 0 :(得分:3)

\d+仅匹配数字。您还需要匹配期间:

var number = Regex.Match(lessonTopicName, "\\d+\\.?\\d*").Value; 

此处的句点和后续数字在?(0或1)和*(0或更多)中可选。如果您需要一个句点和一个小数,那么该版本将是:

var number = Regex.Match(lessonTopicName, "\\d+\\.\\d+").Value; 

答案 1 :(得分:0)

怎么样?
var number = Regex.Match(lessonTopicName, "[0-9]+.[0-9]$").Value;

答案 2 :(得分:0)

var number = Regex.Match(lessonTopicName, @"\d+.\d+").Value;