使用正则表达式从句子中检索特定字符串

时间:2012-04-30 03:26:22

标签: c# regex data-retrieval

我正在尝试从句子中检索带有Regex Expression的特定字符串。 这是我最初的正则表达式:

   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

将它们视为句子,我们通过一次传递一个句子来检索数据。在没有括号的情况下检索数据。

这怎么样?我不知道。我认为我有正确的Regex Expression,但我不确定如何检索数据。

1 个答案:

答案 0 :(得分:1)

您正在寻找Regex.Matches,(假设一个句子可能同时包含KB12345和KB98765)。它与Regex.Match类似,但会为您提供所有匹配的子字符串。

如果您将整个文本作为一个字符串,则可能没有必要将其拆分为句子。只需获取整个字符串中的所有匹配项就可以获得与收集同一字符串中所有句子中的所有匹配项相同的结果。

编辑:更新正在使用的正则表达式

Regex Reg = new Regex(@"(KB\d+(?:-[\w\d]+)?)", RegexOptions.IgnoreCase);