如何在C#中从字符串中查找和提取数字?

正则表达式是可以与输入文本匹配的模式。.Net框架提供了允许此类匹配的正则表达式引擎。模式由一个或多个字符文字,运算符或构造组成。

这是RegEx使用的基本模式元字符-

* = zero or more

? = zero or one

^ = not

[] = range

^符号用于指定非条件。

如果要提供范围值(例如0-9或az或AZ),请使用[]括号

使用Char.IsDigit()

示例

using System;

namespace DemoApplication{

   public class Program{

      static void Main(string[] args){

         string str1 = "123string456";

         string str2 = string.Empty;

         int val = 0;

         Console.WriteLine($"String with number: {str1}");

         for (int i = 0; i < str1.Length; i++){

            if (Char.IsDigit(str1[i]))

               str2 += str1[i];

         }

         if (str2.Length > 0)

            val = int.Parse(str2);

            Console.WriteLine($"Extracted Number: {val}");

         Console.ReadLine();

      }

   }

}

输出结果

String with number: 123string456

Extracted Number: 123456

在上面的示例中,我们循环了字符串str1的所有字符。Char.IsDigit()验证特定字符是否为数字,并将其添加到新字符串中,该新字符串随后被解析为数字。

使用正则表达式

示例

using System;

using System.Text.RegularExpressions;

namespace DemoApplication{

   public class Program{

      static void Main(string[] args){

         string str1 = "123string456";

         string str2 = string.Empty;

         int val = 0;

         Console.WriteLine($"String with number: {str1}");

         var matches = Regex.Matches(str1, @"\d+");

         foreach(var match in matches){

            str2 += match;

         }

         val = int.Parse(str2);

         Console.WriteLine($"Extracted Number: {val}");

         Console.ReadLine();

      }

   }

}

输出结果

String with number: 123string456

Extracted Number: 123456

在上面的示例中,我们使用正则表达式(\ d +)仅从字符串str1中提取数字。

以上是 如何在C#中从字符串中查找和提取数字? 的全部内容, 来源链接: utcz.com/z/350231.html

回到顶部