- 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>和<val> key和val 确实可以任意命名【符合命名规则】
但是下面的 key和val 必须和上面对应起来
//循环输出
string key = m.Groups["key"].Value;//关键字
string val = m.Groups["val"].Value;//值