当前位置: 代码迷 >> ASP.NET >> 正则表达式 帮忙看下解决方法
  详细解决方案

正则表达式 帮忙看下解决方法

热度:2838   发布时间:2013-02-25 00:00:00.0
正则表达式 帮忙看下
C# code
 string[] strs = css.Split('|');            foreach (string str in strs)            {                if (str.Trim() == "") continue;                Regex reg = new Regex(@"^(?<key>\w+)\{(?<val>.*?)\}$", RegexOptions.IgnoreCase);                Match m = reg.Match(str.Trim().ToLower());                //if (m.Success)                //{                    string key = m.Groups["key"].Value;                    string val = (m.Groups["val"].Value.Trim());                   ...                   ...                   ....


主要是想问 Regex reg = new Regex(@"^(?<key>\w+)\{(?<val>.*?)\}$", RegexOptions.IgnoreCase);
这里的正则是什么意思


注: 上面代码只是一部分, 变量css是个很长的字符串

------解决方案--------------------------------------------------------
看不懂
------解决方案--------------------------------------------------------
类似如下格式的,当然当且仅当开头结尾符合时才有效
C# code
 string tempStr = @"关键字{值}";                string pattern = @"^(?<key>\w+)\{(?<val>.*?)\}$";                foreach (Match m in Regex.Matches(tempStr, pattern))                {                    //循环输出                    string key = m.Groups["key"].Value;//关键字                    string val = m.Groups["val"].Value;//值                }
------解决方案--------------------------------------------------------
^表示匹配一个表达式的开始,$表示结束。。<key>在正则表达式中五特殊意义,也就是说这个在要匹配的字符串中必须有这个。\w表示[A-Za-z0-9_]即大写的A到大写的Z和小写的a-z还有0-9或者下划线(_)中的任意一个字符。但是这个段表达式被放在(?)内部,也就是说这个是可有可无的。\{\}表示该字符必须要有内部同前面的一样!
------解决方案--------------------------------------------------------
探讨

^表示匹配一个表达式的开始,$表示结束。。<key>在正则表达式中五特殊意义,也就是说这个在要匹配的字符串中必须有这个。\w表示[A-Za-z0-9_]即大写的A到大写的Z和小写的a-z还有0-9或者下划线(_)中的任意一个字符。但是这个段表达式被放在(?)内部,也就是说这个是可有可无的。\{\}表示该字符必须要有内部同前面的一样!

------解决方案--------------------------------------------------------
<key>和<val> key和val 确实可以任意命名【符合命名规则】

但是下面的 key和val 必须和上面对应起来
//循环输出
 string key = m.Groups["key"].Value;//关键字
string val = m.Groups["val"].Value;//值
  相关解决方案