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("")
        ]

posted @ 2011-08-02 22:51  梦想(胡大利)  阅读(847)  评论(0编辑  收藏  举报