0

我有一个包含文档内容的大字符串。它包含许多合并字段,我想获取它们以生成合并字段的值。

字符串可能是这样的:

string text = "This is a test with merge fields. [First_field], [Second_field] and [Third_field]. Not to forget the [Forth_field]."

我想从中得到的列表是这样的:

  • [First_field]
  • [第二字段]
  • [第三场]
  • [Forth_field]

我知道它可以在 Regex 中完成,但这绝对不是我的强项。我已经尝试使用以下代码,但它似乎创建了一个结果(从第一个和最后一个括号):

Regex.Matches(text, @"\[.*\]", RegexOptions.IgnoreCase);
4

1 回答 1

3

您正在匹配 和 之间的每个[字符]。这包括 ],意味着你吞下每一个领域。您需要的称为惰性匹配,可以?在量词之后使用 a 来完成:

@"\[.*?\]"

或者,您可以只匹配除 之外 ]的任何字符,这是使用字符类的否定来完成的[^]

@"\[[^\]]*\]"
于 2012-09-07T08:59:07.790 回答