regex 从字符串中获取所有数字[已关闭]

44u64gxh  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(100)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

8天前关闭
Improve this question

string text = Convert.ToString(Console.ReadLine());
             string[] myInts ;
            myInts = Regex.Split(text, @"\D+");
            foreach (String num in myInts)
            {
                Console.WriteLine(num);
            }

我需要从字符串中获取所有数字,包括双精度和所有可能的数字类型,并将它们放入数组或列表中。我有一个返回整数的正则表达式,但它在返回double时失败了
我需要从字符串中获取所有数字,包括双精度和所有可能的数字。

svmlkihl

svmlkihl1#

\d+匹配一系列数字,除此之外什么都不匹配。对于一个非常简单的浮点数模式“sign + digits + separator + digits”,没有千位分隔符或空格以及可选的符号和小数部分,模式将是-?\d+(\.\d+)?,假设分隔符是.。一个更复杂的模式留给读者练习。
考虑到这一点,我不会用数字来分割,而是得到所有的匹配:

string text = Console.ReadLine(); // ReadLine already returns a string, no need for conversion
var matches = Regex.Matches(text, @"-?\d+(\.\d+)?"); // get all matches
foreach (Match match in matches)
{
    Console.WriteLine(match.Value); // the match is in the Value property
}

相关问题