1

我有一个看起来像这样的令牌#foo bar#

我想做的是使用正则表达式做两件事,

  1. 识别整个令牌,即`#foo bar#
  2. bar仅从令牌中获取

到目前为止,我正在使用它来获取整个令牌作为一个组(?<group1>#foo [^#]+#)

我很困惑如何bar成为第二组?

我正在尝试这种变化,但还没有完全实现,我们将不胜感激。

(?<group1>#foo (?<group2[^#]+)#)

4

2 回答 2

1

我对你的正则表达式做了一个小改动,并想出了这个:

(?<group1>#foo (?<group2>[^#]+)#)

示例可以在这里找到:http ://regexr.com?33api

于 2013-01-07T08:17:58.297 回答
1

你实际上非常接近。我让它与这个正则表达式一起工作:

(?<group1>#foo (?<group2>[^#]+)#)

(您在第 2 组之后错过了结束>)。

该程序输出bar

var input = "#foo bar#";

var m = Regex.Match(input, "(?<group1>#foo (?<group2>[^#]+)#)");

Console.WriteLine(m.Groups["group2"].Value);
于 2013-01-07T08:18:14.073 回答