2012-03-20 15 views
3

私はこのようなウェブサイトの内容を掻いています - "Company Stock Rs。7100"C#の文字列から数値を取得する

ここで、私が望むのは、この文字列から数値を抽出することです。私は分割しようとしましたが、何か他のものが私の正規表現に間違っています。

この値を取得する方法を教えてください。

+0

は、数は常に文字列の最後にするつもりですか? –

+0

数字はいつも最後になるのですか?テキストは常に「会社株式」ですか? –

+0

はい、数字は常に最後になります –

答えて

13

用途:

var result = Regex.Match(input, @"\d+").Value; 

あなたは、この正規表現を使用する必要があり、文字列の最後の「実体」であるだけで数検索したい場合は:あなたが最後の番号を一致させたい場合は

\d+$ 

を文字列は、あなたが使用することができます。

\d+(?!\D*\d) 
4
int val = int.Parse(Regex.Match(input, @"\d+", RegexOptions.RightToLeft).Value); 
0

あなたは番号の最初の発生を一致させるために\d+を使用することができます。

string num = Regex.Match(input, @"\d+").Value; 
1

このコードは、文字列の末尾に整数を返します。これは、文字列のどこかに数字がある場合の正規表現よりも優れています。

var theNumber = theString.Where(x => char.IsNumber(x));  

Regexがネイティブの選択肢のように聞こえるけど...あなたの番号が最後のスペースの後に常にあり、あなたの文字列は、常にこの番号で終わる場合

+0

"これは、文字列のどこかに数字がある場合の正規表現よりも効果的です。" - どのような意味で?文字列の最後に数字だけを一致させる正規表現を簡単に作ることができます。 –

2

は、私はいつもLINQを言っています、あなたはそれをこのように得ることができます:

str.Substring(str.LastIndexOf(" ") + 1) 
+0

少なくとも、2行目はコンパイルされません。 –

+0

@KirillPolishchuk。あなたは正しい、私はそれを削除しました... =)thanks – gdoron

+0

'1 a 2'のような文字列はどうですか? –

1

public int getLastInt(string line) 
    { 
     int offset = line.Length; 
     for (int i = line.Length - 1; i >= 0; i--) 
     { 
      char c = line[i]; 
      if (char.IsDigit(c)) 
      { 
       offset--; 
      } 
      else 
      { 
       if (offset == line.Length) 
       { 
        // No int at the end 
        return -1; 
       } 
       return int.Parse(line.Substring(offset)); 
      } 
     } 
     return int.Parse(line.Substring(offset)); 
    } 
1

私の答えは....それですC#を使用して文字列から分離する数値....

static void Main(string[] args) 
    { 
     String details = "XSD34AB67"; 
     string numeric = ""; 
     string nonnumeric = ""; 
     char[] mychar = details.ToCharArray(); 
     foreach (char ch in mychar) 
     { 
      if (char.IsDigit(ch)) 
      { 

       numeric = numeric + ch.ToString(); 
      } 
      else 
      { 
       nonnumeric = nonnumeric + ch.ToString(); 
      } 
     } 

     int i = Convert.ToInt32(numeric); 
     Console.WriteLine(numeric); 
     Console.WriteLine(nonnumeric); 
     Console.ReadLine(); 



    } 
} 

}

関連する問題