1

好き:

"Name: Daniel --- Phone Number: 3128623432 --- Age: 12 --- Occupation: Student"

「年齢」以降の入手方法は?数字だけ欲しいのですが。(彼の歳)

4

4 に答える 4

5

正規表現を使用する:

^.+Age\: ([0-9]+).+$

最初のグループ化は年齢を返します。ここまたはここを参照してください。

于 2012-11-09T08:21:46.753 に答える
0

次の概念で完全なコードを試すことができますか?

string strAge;
string myString = "Name: Daniel --- Phone Number: 3128623432 --- Age: 12 --- Occupation: Student";
int posString = myString.IndexOf("Age: ");

if (posString >0)
{
  strAge = myString.Substring(posString);
}

堅牢な方法は、いくつかの正規表現を取得することです:)しかし...

于 2012-11-09T08:30:20.540 に答える
0

実際には、タイプの辞書として簡単に表すことができるデータがありますDictionary<string, string>

var s = "Name: Daniel --- Phone Number: 3128623432 --- Age: 12 --- Occupation: Student";
var dictionary = s.Split(new string[] { "---" }, StringSplitOptions.None)
                  .Select(x => x.Split(':'))
                  .ToDictionary(x => x[0].Trim(), x => x[1].Trim());

これで、入力文字列から任意の値を取得できます。

string occupation = dictionary["Occupation"];
int age = Int32.Parse(dictionary["Age"]);
于 2012-11-09T08:37:26.093 に答える
0

この形式で年齢があるとしますAge: value

string st = "Name: Daniel --- Phone Number: 3128623432 --- Age: 12 --- Occupation: Student";
//Following Expression finds a match for a number value followed by `Age:`
System.Text.RegularExpressions.Match mt = System.Text.RegularExpressions.Regex.Match(st, @"Age\: \d+");
int age=0; string ans = "";
if(mt.ToString().Length>0)
{
     ans = mt.ToString().Split(' ')[1]);
     age = Convert.ToInt32(ans);
     MessageBox.Show("Age = " + age);
}
else
     MessageBox.Show("No Value found for age");

MessgeBox は、文字列値 (見つかった場合) を表示します。

于 2012-11-09T08:36:46.847 に答える