-8

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

这是我正在查看的短语:

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

4 回答 4

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);
} 
于 2013-02-15T21:19:48.223 回答
1

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

正则表达式

[A-Z]{3}\:\s\d{11}
于 2013-02-15T21:22:50.113 回答
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);
            }
        }
于 2013-02-15T21:23:35.730 回答
1

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

使用 string.substring 将是您最好的选择。

于 2013-02-15T21:17:00.207 回答