【问题标题】:Retrieving a particular string from a sentence using Regular Expressions使用正则表达式从句子中检索特定字符串
【发布时间】:2012-05-09 19:47:30
【问题描述】:

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

   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

将它们视为句子,我们通过一次传递一个句子来检索数据。检索不带括号的数据。

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

【问题讨论】:

标签: c# regex data-retrieval


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-08
    • 2013-10-14
    • 1970-01-01
    • 2010-10-16
    • 2016-03-05
    • 2021-04-08
    • 2018-08-20
    相关资源
    最近更新 更多