C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で文字列内の数字を検索・抽出する方法

文字列の中から数字を見つけたい場合、正規表現を使うのが最も手軽で確実な方法です。C#では、System.Text.RegularExpressions名前空間に含まれるRegexクラスとMatchクラスを組み合わせることで、簡単に数値を抽出できます。

Regexパターンの設定

まず、文字列から数値を取得するためのRegexパターンを設定します。「\d+」は「1桁以上の連続した数字」にマッチするパターンです。

Regex r = new Regex(@"\d+");

Matchクラスで対象の文字列を指定

次に、Matchクラスを使って、検索対象となる文字列を設定します。

Match m = r.Match("Welcome! We are open 365 days in a year!");

そして、Successプロパティを参照することで、文字列内に数字が見つかったかどうかを判定できます。Successがtrueの場合は、m.Valueで実際にマッチした数字を取得して表示します。以下に完全なコード例を示します。

コード例

using System;
using System.Text.RegularExpressions;

class Demo {
    static void Main() {

        Regex r = new Regex(@"\d+");
        Match m = r.Match("Welcome! We are open 365 days in a year!");

        if (m.Success) {
            Console.Write("Number: ");
            Console.WriteLine(m.Value);
        }
    }
}

実行結果

Number: 365

補足:複数の数字をすべて抽出したい場合

文字列内に複数の数字が含まれている場合は、Matchesメソッドを使うと、すべてのマッチ結果をまとめて取得できます。

foreach (Match match in r.Matches("2024年は365日あります")) {
    Console.WriteLine(match.Value); // 「2024」と「365」が出力される
}

このように、正規表現を活用すれば、文章中の電話番号や日付など、さまざまな数値データを柔軟に抽出することが可能です。

  1. 【Java】文字列の最初の文字が数字かどうかを判定する2つの方法

    方法1:Character.isDigit()メソッドを使う java.lang.CharacterクラスのisDigit()メソッドは、引数としてchar型の文字を受け取り、その文字が数字(0~9)であるかどうかを判定します。数字であればtrueを、それ以外の場合はfalseを返します。 文字列の最初の文字が数字かどうかを確認するには、次の手順に従います。 charAt()メソッド:Stringクラスのこのメソッドは、インデックスを表す整数値を引数に取り、指定した位置の文字を返します。先頭の文字はcharAt(0)で取得できます。 toCharArray()メソッド:Stringクラスの

  2. Pythonで数値を逆順にする2つの方法【文字列変換と数学的処理】

    整数の桁を逆順に並べ替える(数値の反転)処理は、Pythonでは比較的簡単に実装できます。アルゴリズムの学習やコーディングテストなど、さまざまな場面で数値を反転させる必要に迫られることがあります。入力:12345 出力:54321Pythonで数値を逆順にする方法は、主に以下の2つがあります。数値を文字列に変換し、文字列を反転させてから再び整数に戻す方法文字列に変換せず、数学的な演算だけで反転させる方法方法1:文字列に変換して反転するこの方法は最もシンプルで、複雑なロジックを考える必要がありません。数値をstr()で文字列に変換し、スライス記法[::-1]を使って文字列を反転させた後、int(