解析字符串以在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
我该怎么做?
如果它总是"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);
}
}