110,538
社区成员
发帖
与我相关
我的任务
分享
string test = "1+sum(3)-4*2+dfasdf+616+函数(字段)";
Regex reg = new Regex(@"(?<=(?<info>(?<=[\+\-\*\/]).*?(?=[\+\-\*\/])[\+\-\*\/](?<=[\+\-\*\/]).*?(?=[\+\-\*\/])))");
//Regex reg = new Regex(@"(?<=(?<info>(((sum|avg|count)\(\d+\))|\d+)[\+\-\*\/]((sum\(\d+\))|\d+)))");
MatchCollection mc = reg.Matches("-"+test+"-"); //注意在这里做了点小小操作
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["info"].ToString());
}
/*
------输出结果------------
1+sum(3)
sum(3)-4
4*2
2+dfasdf
dfasdf+616
616+函数(字段)
*/
string str = "1 + sum(3) - 4*2";
List<string> reglist = new List<string>();
Regex re = new Regex(@"(?<=(?<num>[^+-/\*]+[+-/\*])(?=(?<info>[^+-/\*]+)))");
foreach (Match m in re.Matches(str))
{
reglist.Add(m.Groups["num"].Value + m.Groups["info"].Value);
}
string test = "1+sum(3)-4*2";
//Regex reg = new Regex(@"(?<=[-+\*/])\d+(?=[-+\*/])");
Regex reg = new Regex(@"(?<=(?<info>(((sum|avg|count)\(\d+\))|\d+)[\+\-\*\/]((sum\(\d+\))|\d+)))");
MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["info"].ToString());
}