2013-02-15 31 views
-8

我正在嘗試在字符串中查找一組數字和字母。解析一個字符串以在C中查找一個短語#

下面是我在尋找的那句話:

Rx: RX15046522B Brand: LEVOTHYROXINE SODIUM Generic: LEVOTHYROXINE SODIUM NDC: 00378180001 Barcode: 0378180001 Strength: 25 mcg Form: Tablet Color: orange Marking: Shape: oblong 

我想演這個角色到另一個字符串中:

NDC: 00378180001 

我會怎麼做呢?

+4

['你嘗試過什麼?'](http://mattgemmell.com/2008/12/08/what-have-you-tried/)我真的希望你不希望我們爲你寫代碼。因爲這不太可能發生。 – 2013-02-15 21:14:23

+5

String.IndexOf()和String.Substring()可以是你的朋友或使用正則表達式。 – Quintium 2013-02-15 21:15:22

+1

我不是真的在尋找代碼,我只是真的在尋找什麼方向來。即時通訊不確定是否應該查找NDC文本,然後將其設置爲在它之後查找11個數字。這就是我真正需要的。我寧願將自己編碼並學習,而不是讓別人爲我做。 – Eric 2013-02-15 21:19:31

回答

1

如果它總是會是「NDC:[number]」,那麼您可以使用一個相當簡單的正則表達式。

var re = new System.Text.RegularExpressions.Regex(@"NDC\:\s(\d{11})"); 
var phrase = "Rx: RX15046522B Brand: LEVOTHYROXINE SODIUM Generic: LEVOTHYROXINE SODIUM NDC: 00378180001 Barcode: 0378180001 Strength: 25 mcg Form: Tablet Color: orange Marking: Shape: oblong"; 
if (re.IsMatch(phrase)) 
{ 
    var match = re.Match(phrase); 
    // entire NDC string 
    context.Response.Write(match.Value); 
    // just the number 
    context.Response.Write(match.Groups[1].Value); 
} 
1

所以你正在尋找3個字母,冒號,空格和11個數字的模式?

正則表達式

[A-Z]{3}\:\s\d{11} 
1
 String S = "Rx: RX15046522B Brand: LEVOTHYROXINE SODIUM Generic: LEVOTHYROXINE SODIUM NDC: 00378180001 Barcode: 0378180001 Strength: 25 mcg Form: Tablet Color: orange Marking: Shape: oblong"; 

     Regex myRegex = new Regex(@"[0-9]+(?:\.[0-9]*)?", RegexOptions.Compiled); 
     foreach (Match iMatch in myRegex.Matches(S)) 
     { 
      if (iMatch.Value.Length==11) 
      { 
      MessageBox.Show(iMatch.Value); 
      } 
     }