string str = "效力级别='001%' and 效力级别='02' and (效力级别 = '1010%' or 效力级别=001)"; Regex reg = new Regex(@"效力[^=]+=\s*('?)[^'\)]+\1"); foreach (Match m in reg.Matches(str)) Console.WriteLine(m.Value);
string str = "效力级别='001%' and 效力级别='02' and (效力级别 = '1010%' or 效力级别=001)"; string result = string.Empty; Regex re = new Regex("效力级别\\s*=\\s*'?\\d*%?'?", RegexOptions.None); MatchCollection mc = re.Matches(str); foreach (Match ma in mc) { result += ma.Value; }//结果: //效力级别='001%' //效力级别='02' //效力级别 = '1010%' //效力级别=001
\1是匹配捕获的第一个组里的内容 原来都是效力级别,我还以为有个效力基本,那改成这样 string str = "效力级别='001%' and 效力级别='02' and (效力级别 = '1010%' or 效力级别=001)"; Regex reg = new Regex(@"效力级别\s*=\s*('?)[^'\)]+\1"); foreach (Match m in reg.Matches(str)) Console.WriteLine(m.Value);
有个问题,我把字符串换成 (效力级别=001 and 效力级别 = 001 and 效力级别 =001 and 效力级别= 001 and 效力级别 = 001% 效力级别 ='001%') 这是什么问题求解
string str = "(效力级别=001 and 效力级别 = 001 and 效力级别 =001 and 效力级别= 001 and 效力级别 = 001% 效力级别 ='001%')"; Regex reg = new Regex(@"效力级别\s*=\s*('?)\d+%?\1"); foreach (Match m in reg.Matches(str)) Console.WriteLine(m.Value);
string str = "效力级别='001%' and 效力级别='02' and (效力级别 = '1010%' or 效力级别=001)";
Regex reg = new Regex(@"效力[^=]+=\s*('?)[^'\)]+\1");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
string str = "效力级别='001%' and 效力级别='02' and (效力级别 = '1010%' or 效力级别=001)";
string result = string.Empty;
Regex re = new Regex("效力级别\\s*=\\s*'?\\d*%?'?", RegexOptions.None);
MatchCollection mc = re.Matches(str);
foreach (Match ma in mc)
{
result += ma.Value;
}//结果:
//效力级别='001%'
//效力级别='02'
//效力级别 = '1010%'
//效力级别=001
--------------------------------------------------------------------------------
huangwenquan123大哥很好使,有个问题请教下\1是什么作用
原来都是效力级别,我还以为有个效力基本,那改成这样
string str = "效力级别='001%' and 效力级别='02' and (效力级别 = '1010%' or 效力级别=001)";
Regex reg = new Regex(@"效力级别\s*=\s*('?)[^'\)]+\1");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
Regex reg = new Regex(@"效力级别\s*=\s*('?)\d+%?\1");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);