繁体   English   中英

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

[英]Get numbers from a string with RegEx

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

"Lesson 2.3"

或这个:

"Lesson 12.5"

有什么办法可以从此字符串中获取 2.312.5或具有相同格式的任何其他数字? 我并不是想将其转换为双精度或浮点型,我只是想在其中包含数字的字符串部分,即“ 2.3”或“ 12.5”。

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

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

我对RegEx并不完全了解,所以我知道我做错了。 我想写一个方法,我可以只传入字符串,然后以字符串格式返回字符串中的数字。

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

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

在这里,句号和随后的数字是可选的? (0或1)和* (0或更大)。 如果需要在句点后加上小数点,则该版本为:

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

关于什么

var number = Regex.Match(lessonTopicName, "[0-9]+.[0-9]$").Value;
var number = Regex.Match(lessonTopicName, @"\d+.\d+").Value;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM