string s="8412qq12好";
string t="";
for(int i=0;i<s.Length;i++)
{
if(Char.IsDigit(s[i]))
{
t+=s[i];
}
else
{
break;
}
}
Response.Write(t);我不会正则表达式什么高级的东西,
写了个循环一个一个判断了。

解决方案 »

  1.   

    闲来无事,写个函数温习代码~~
    public string fun(string str1)
    {
    string str2="";
    for(int i=0;i<str1.Length;i++)
    {
               switch(str1[i])
    {
    case '0':str2+="0";break;
    case '1':str2+="1";break;
    case '2':str2+="2";break;
    case '3':str2+="3";break;
            .
    .
    case '9':str2+="9";break;
    default:break;

    }
    }
    return str2;
    }
      

  2.   

    竟然没有发现Char.IsDigit()这个方法,惭愧
    又学到了点知识
      

  3.   

    借助正则表达式:using System.Text.RegularExpressions;string s="871中国124";
    Match m= Regex.Match(s,@"^\d+",RegexOptions.Multiline);
    while (m.Success) 
    {
    string ss=m.ToString();  //<----------这里获得
    m = m.NextMatch();
    }
      

  4.   

    string exp = @"(?<data>\d*)[^\d].*";
    Regex regex = new Regex(exp);
    StringBuilder sb = new StringBuilder();
    string text = "1234$asdfsa123啊啊阿";
    Match match = new Regex(exp,RegexOptions.Singleline|RegexOptions.IgnoreCase ).Matches( text)[0];
    string data = match.Groups["data"].Value;
      

  5.   

    根据"1234$foaxfp" 或是"871中国124" 或是"8412qq12好"
    得出1234 871 8412 用正则表达式算法如下:using System.Text.RegularExpressions;string[] s=new string[]{"1234$foaxfp","871中国124","8412qq12好"};
    string res="";
    for(int i=0;i<s.Length;i++)
    { Match m= Regex.Match(s[i],@"^\d+",RegexOptions.Multiline);
    while (m.Success) 
    {
    res+=m.ToString()+" ";
    m = m.NextMatch();
    }
    }
    if(res.EndsWith(" "))
    res=res.Substring(0,res.Length -1);//res即为所求