日期:2014-05-17  浏览次数:20871 次

请帮忙看一下这段正则表达式怎么写?
一段字符串如下:
"Module [AccOC_EvaluateData_SMD_de-DE] SplitEvaluate::Run() completed"

提取出中间的de-DE (de-DE可能为en-GB,es-ES,中间语言部分是可变的),如何写这个正则表达式,还有简单的代码,谢谢!
正则 正则表达式

------解决方案--------------------

            string str = @"Module [AccOC_EvaluateData_SMD_de-DE] SplitEvaluate::Run() completed";
            string strmatch = @"(?is)(?<=\[AccOC_EvaluateData_SMD_)[^\]]+(?=\])";
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(strmatch);
            System.Text.RegularExpressions.Match m = reg.Match(str);
            MessageBox.Show(m.Value);

------解决方案--------------------
(?<=Module \[AccOC_EvaluateData_SMD_).*?(?=\])
------解决方案--------------------


string reg = "(?is)AccOC_EvaluateData_SMD_(?'gr'[^\]]+)";
            Regex r = new Regex(reg);
            Match m = r.Match(你的字符串);
            Console.WriteLine(m.Groups["gr"]);