Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 문자열에서 숫자를 찾고 추출하는 방법은 무엇입니까?

<시간/>

정규식은 입력 텍스트와 일치할 수 있는 패턴입니다. .Net 프레임워크는 이러한 일치를 허용하는 정규식 엔진을 제공합니다. 패턴은 하나 이상의 문자 리터럴, 연산자 또는 구성으로 구성됩니다.

다음은 RegEx에서 사용하는 기본 패턴 메타 문자입니다. -

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

^ 기호는 not 조건을 지정하는 데 사용됩니다.

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의 모든 문자를 반복하고 있습니다. TheChar.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에서 숫자만 추출합니다.