C# 使用正则表达式获取格式ABC-XXX-XXX

C# 使用正则表达式获取格式ABC-XXX-XXX,c#,regex,pattern-matching,C#,Regex,Pattern Matching,我的数据如下 CVE-2011-0573, CVE-2011-0606, (CVE-2011-0565) CVE-2011-0598, CVE-2011-0593. ((CVE-2011-0593.) 我只需要获取格式“ABC-XXX-XXX”。我使用的这个gex模式是“[A-Z]{3}-[0-9]{4}-[0-9]{3,10}” 另外还有一个用C写的方法# 所以如果我现在运行这个代码,对于“CVE-2011-0573,”它返回“,”而不是“CVE-2011-0573” 你能帮我修改一下C代码

我的数据如下

CVE-2011-0573,
CVE-2011-0606,
(CVE-2011-0565)
CVE-2011-0598,
CVE-2011-0593.
((CVE-2011-0593.)
我只需要获取格式“
ABC-XXX-XXX
”。我使用的这个gex模式是“
[A-Z]{3}-[0-9]{4}-[0-9]{3,10}

另外还有一个用C写的方法#

所以如果我现在运行这个代码,对于“
CVE-2011-0573,
”它返回“
”而不是“
CVE-2011-0573

你能帮我修改一下C代码,让它按照“CVE-2011-0573”的方式工作吗

非常感谢

使用
objRegExp.Match(消息)
获取匹配项

或者在你的例子中:

string output = "";
var matches = objRegExp.Matches(message);
foreach (var match in matches)
{
    output+=match;
}
return output;
处理多个匹配项。

使用
objRegExp.Match(消息)
获取匹配项

或者在你的例子中:

string output = "";
var matches = objRegExp.Matches(message);
foreach (var match in matches)
{
    output+=match;
}
return output;
处理多个匹配项。

使用此功能:

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

使用此功能:

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

这应该起作用:

   String charPattern ="[.,()]"
据此:

这应该起作用:

   String charPattern ="[.,()]"

你为什么认为它会退回其他东西?您正在使用
Replace
方法删除消息中所有出现的正则表达式模式。显然,您正在用空字符串替换与消息匹配的位。你认为那会怎样?我怀疑您只是想将消息与您的正则表达式匹配,并返回匹配值…@Tarec-我不会,我知道这一点。这就是为什么我需要建议我应该在这里使用什么方法,这样它才能以正确的方式工作。我不是C程序员。@Dnac,您要求的是
ABC-XXX-XXX
,但这样会导致数据丢失,因为数据的格式是
ABC-XXXX-XXXX
@Dnac请记住,
C
!=
C#
。你为什么认为它会返回其他东西?您正在使用
Replace
方法删除消息中所有出现的正则表达式模式。显然,您正在用空字符串替换与消息匹配的位。你认为那会怎样?我怀疑您只是想将消息与您的正则表达式匹配,并返回匹配值…@Tarec-我不会,我知道这一点。这就是为什么我需要建议我应该在这里使用什么方法,这样它才能以正确的方式工作。我不是C程序员。@Dnac,您要求的是
ABC-XXX-XXX
,但这样会导致数据丢失,因为数据的格式是
ABC-XXXX-XXXX
@Dnac请记住,
C
!=<代码>C#。很好,这似乎工作得很好。非常感谢。我刚刚用我的正则表达式替换了你的正则表达式,因为数字可能会有所不同。我想它不会引起任何问题。很好,这似乎工作得很好。非常感谢。我刚刚用我的正则表达式替换了你的正则表达式,因为数字可能会有所不同。我想这不会引起任何问题。