0

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

   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

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

这将如何运作?我不知道。我想我的正则表达式是正确的,但我不太确定如何检索数据。

4

1 回答 1

1

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

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

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

Regex Reg = new Regex(@"(KB\d+(?:-[\w\d]+)?)", RegexOptions.IgnoreCase);
于 2012-04-30T03:32:29.770 回答