1

私はこのようなトークンを持っています#foo bar#

私がやりたいことは、正規表現を使用して2つのことを行うことです.

  1. トークン全体を識別します。つまり、`#foo bar#
  2. barトークンから取得する

これまでのところ、これを使用してトークン全体をグループとして取得しています(?<group1>#foo [^#]+#)

bar2番目のグループとして取得する方法として困惑していますか?

私はこれのバリエーションを試していますが、まだ十分ではありません。あなたの助けをいただければ幸いです。

(?<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 に答える