我有一个包含文档内容的大字符串。它包含许多合并字段,我想获取它们以生成合并字段的值。
字符串可以是这样的:
string text = "This is a test with merge fields. [First_field], [Second_field] and [Third_field]. Not to forget the [Forth_field]."
我希望摆脱这个列表,就像这样:
我知道它可以在Regex中完成,但这绝对不是我的力量。我尝试使用以下代码,但它似乎创建了一个结果(从第一个和最后一个括号):
Regex.Matches(text, @"\[.*\]", RegexOptions.IgnoreCase);
答案 0 :(得分:3)
您正在匹配[
和]
之间的每个字符。那包含 ]
,这意味着你吞下每个字段。您需要的是 lazy 匹配,可以使用量词之后的?
进行匹配:
@"\[.*?\]"
或者,您可以匹配除 ]
之外的任何字符,这是使用字符类[^]
@"\[[^\]]*\]"