ロバメモ - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

C# 文字列から数値だけを抜き出す方法

やりたいこと

文字列から数値だけを抜き出したい。

オブジェクトの名前から数字だけ取りたい時に使えそうなのでメモ。

コード

Regex.Replace()を使って、数値以外の文字列を""に置換することで数値だけを残す方法。

オブジェクト名 Stage21 から21だけを抜き出す

using System.Text.RegularExpressions;

string str = Regex.Replace (gameObject.name, @"[^0-9]", "");
Debug.Log (str);
//出力結果
21

使用したメソッド

Regex.Replace メソッド (String, String, String) (System.Text.RegularExpressions)

public static string Replace(
    string input,
    string pattern,
    string replacement
)

パラメーター

input
元になる文字列

pattern
一致させる正規表現パターン

replacement
置換したい文字列

戻り値

inputの中から、patternに一致した文字列を、replacementに置き換えた文字列

数字以外という正規表現

・前に @ をつける
・"[0-9]" で数字を意味する
・^ をつけることで、〜以外となる

ちなみに、文字列を数値に変換するなら

int str =int.Parse(Regex.Replace (gameObject.name, @"[^0-9]", ""));

以上