解析字符串以在C#中查找短语

本文关键字:查找 短语 字符串 | 更新日期: 2023-09-27 17:59:49

我试图在字符串中查找一组数字和字母。

以下是我正在查看的短语:

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

我想把这个部分放到另一个字符串中:

NDC: 00378180001

我该怎么做?

解析字符串以在C#中查找短语

如果它总是"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);
} 

查看这些页面--http://msdn.microsoft.com/en-us/library/ms228630%28v=vs.80%29.aspxhttp://msdn.microsoft.com/en-us/library/system.string.substring%28v=vs.71%29.aspx

使用字符串.子字符串将是您的最佳选择。

所以您正在寻找一个由3个字母、一个冒号、一个空格和11个数字组成的模式?

RegEx

[A-Z]{3}':'s'd{11}
        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);
            }
        }