如何在 C# 中從字串中查詢和提取數字?


正則表示式是一種可與輸入文字匹配的模式。.Net 框架提供一個正則表示式引擎,允許執行此類匹配。模式由一個或多個字元文字、運算子或結構組成。

以下是 RegEx 使用的基本模式元字元 −

* = zero or more
? = zero or one
^ = not
[] = range

^ 符號用於指定非條件。

中括號 [ ],當我們提供範圍值(如 0-9 或 a-z 或 A-Z)時使用。

使用 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 中僅提取數字。

更新日期:2020 年 9 月 24 日

瀏覽量:11K+ 次

開啟你的 職業生涯

完成課程,獲得認證

立即開始
廣告
© . All rights reserved.