我有一个字符串,看起来像这样:
"Lesson 2.3"
或者这个:
"Lesson 12.5"
有什么方法可以抓取 2.3
或12.5
或此字符串中具有相同格式的任何其他数字?我不是想把它变成一个double或float,我只想要 string 部分中包含数字,即“2.3”或“12.5”。
我尝试过使用RegEx,但我的尝试只返回第一个数字:
var number = Regex.Match(lessonTopicName, "\\d+").Value; // returns "2"
我对RegEx没有完全了解,所以我知道我做错了。我想编写一个方法,我可以传入字符串,并以字符串格式返回字符串中的数字,如果这是有道理的。
答案 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;