C# 正则表达式替换分组内的内容

要替换的内容:

Description ( "Gets or sets the name of the series."

),

Description( "Gets the series' collection of data points." ),

Category("Elements"),

DesignerSerializationVisibility(DesignerSerializationVisibility.Content),

Editor("DevExpress.XtraCharts.Design.SeriesCollectionEditor," + AssemblyInfo.SRAssemblyCharts, typeof(System.Drawing.Design.UITypeEditor)),

System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)

]

[

Description("Gets or sets the text that identifies the series within the legend of a chart control."),

Category("Behavior"),

Localizable(true),

DefaultValue("")

]

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace RegexReplace
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Regex re = new Regex("Description\\s*\\(\\s*\"(.*?)\"\\s*\\)", RegexOptions.Singleline);
            var a = re.Matches(textBox1.Text);
            StringBuilder str = new StringBuilder();
            foreach (Match b in a)
            {
                if (b.Success)
                {
                    str.Append(b.Groups[1].Value);
                }
            }
            textBox2.Text = re.Replace(textBox1.Text, m =>
                   {
                       if (m.Success)
                       {
                           return m.Value.Replace(m.Groups[1].Value, "[" + m.Groups[1].Value + "]");
                       }
                       else
                       {
                           return "null]";
                       }

                   });
        }
    }
}

替换后:

Description ( "[Gets or sets the name of the series.]"

),

Description( "[Gets the series' collection of data points.]" ),

Category("Elements"),

DesignerSerializationVisibility(DesignerSerializationVisibility.Content),

Editor("DevExpress.XtraCharts.Design.SeriesCollectionEditor,"

+ AssemblyInfo.SRAssemblyCharts, typeof(System.Drawing.Design.UITypeEditor)),

System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)

]

[

Description("[Gets or sets the text that identifies the series within the legend of a chart control.]"),

Category("Behavior"),

Localizable(true),

DefaultValue("")

]