C# 使用正则表达式从句子中检索特定字符串
我试图从一个句子中检索带有正则表达式的特定字符串。 这是我的首个正则表达式:C# 使用正则表达式从句子中检索特定字符串,c#,regex,data-retrieval,C#,Regex,Data Retrieval,我试图从一个句子中检索带有正则表达式的特定字符串。 这是我的首个正则表达式: Regex Reg = new Regex(@"^[KB|kb](\w+)[-]?(\w+)$"); From input of : word word word (KB92922-WMP9) word. word word word (KB929222910) word word. word word kb28928282 word word. 它应该能够检索: KB92922-WMP9
Regex Reg = new Regex(@"^[KB|kb](\w+)[-]?(\w+)$");
From input of :
word word word (KB92922-WMP9) word.
word word word (KB929222910) word word.
word word kb28928282 word word.
它应该能够检索:
KB92922-WMP9
KB929222910
kb28928282
将它们视为句子,我们通过一次传递一个句子来检索数据。检索不带括号的数据
这将如何运作?我不知道。我想我的正则表达式是对的,但我不太确定如何检索数据。您正在查找(假设一个句子可能同时包含KB12345和KB98765)。它类似于,但将提供所有匹配的子字符串
如果将整个文本作为一个字符串,则可能没有必要将其拆分为句子。只需获取整个字符串中的所有匹配项,就会得到与收集同一字符串中所有句子中的所有匹配项相同的结果
编辑:更新您正在使用的正则表达式
Regex Reg = new Regex(@"(KB\d+(?:-[\w\d]+)?)", RegexOptions.IgnoreCase);
请不要在标题前加上“C-”之类的前缀。这就是标记的用途。我发现这在测试正则表达式时非常有用: