2012-11-21 38 views
0

我有一個字符串LCD32W58。在這個字符串中我想要子字符串,直到我得到號碼
LCD32W58 --> LCD子串直到找到數字

如果字符串在開頭包含數字,那麼我需要數字直到字符開始
例如, 55LM9600 --? 55

+0

您正在使用哪種語言?你可以請添加標籤嗎? – Bohemian

回答

0

你可以使用這樣的事情

if @nString like '[0-9]%' 
    select @Result = left(@nString, patindex('%[A-Za-z]%', @nString) - 1) 
else if @nString like '[A-Za-z]%' 
    select @Result = left(@nString, patindex('%[0-9]%', @nString) - 1) 

你也可以使用numbersnot numbers風格只

if @nString like '[0-9]%' 
    select @Result = left(@nString, patindex('%[^0-9]%', @nString) - 1) 
else 
    select @Result = left(@nString, patindex('%[0-9]%', @nString) - 1) 
0

的梅索德wroks如果你只有數字和字母在字符串中

private string ParseString(string s) 
{    
    int i = 0; 
    int j = 0; 
    foreach (char c in s) 
    {    
     if (isAlphanummeric(c) 
     { 
      if (j > 0) 
       break; 
      i++; 
     } 
     else if(isNummeric(c) 
     { 
      if (i > 0) 
       break; 
      j++; 
     } 
     else 
     { 
      throw new NotSupportedException(
         "Only letters and numbers are expected."); 
     } 
    } 

    return (s.Substring(0, (i > 0 ? i: j))); 
} 

private bool isAlphanummeric(Char decValue) 
{ 
    return ((decValue > 64) && (decValue < 91)) || 
      ((decValue > 98) && (decValue < 123)); 
} 

private bool isNummeric(Char decValue) 
{ 
    return ((decValue > 47) && (decValue < 58)); 
}