我的数据如下
CVE-2011-0573,
CVE-2011-0606,
(CVE-2011-0565)
CVE-2011-0598,
CVE-2011-0593.
((CVE-2011-0593.)
我只需要获取格式“ABC-XXX-XXX
”。我使用的RegEx模式是“[A-Z]{3}-[0-9]{4}-[0-9]{3,10}
”。
另外还有一个用C#编写的方法
public String RemoveChars(String message)
{
// The pattern for an expression
String charPattern = "[A-Z]{3}-[0-9]{4}-[0-9]{3,10}";
// Create a regex object with the pattern
Regex objRegExp = new Regex(charPattern);
// Replace unwanted char by empty string - TO BE FIXED(?)
message = objRegExp.Replace(message, String.Empty);
// Return the message without unwanted chars
return message;
}
因此,如果我现在运行此代码,对于“CVE-2011-0573,
”,它会返回“,
”而不是“CVE-2011-0573
”。
您能否帮我修一下C#代码,使其按照结果“CVE-2011-0573
”的方式工作?
非常感谢!
答案 0 :(得分:2)
使用objRegExp.Match(message)
来获得您的匹配。
或在您的示例中:
string output = "";
var matches = objRegExp.Matches(message);
foreach (var match in matches)
{
output+=match;
}
return output;
处理多个匹配。
答案 1 :(得分:1)
使用此功能:
public String RemoveChars(String message)
{
// The pattern for an expression
String charPattern = @"[A-Z]{3}-\d{4}-\d{4}";
// Create a regex object with the pattern
message = Regex.Match(message, charPattern).Value;
// Return the message without unwanted chars
return message;
}
此外,如果您需要多个匹配项,请使用Regex.Matches
答案 2 :(得分:0)