62,041
社区成员
发帖
与我相关
我的任务
分享
如果你想要获取括号内的信息,正则是这样写的:
(?<=\()[^)]+(?=\))
然后根据取到的值去数据库或其他地方找到需要替换的值,进行替换即可:
string str="你的那一坨";
str=Regex.Replace(str,@"(?<=\()[^)]+(?=\))",m=>GetValue(m.Value));
public string GetValue(string str)
{
if(str=="DS_NE_CELL_G.BTS_NAME") return "4";
else if(str=="DS_PRD_A_CELL_H.FREECOUNT") return "2";
else return "Tim" ;
}
public static void Regex20111128()
{
string src =
@"(
(DS_NE_CELL_G.BTS_NAME)-(DS_PRD_A_CELL_H.FREECOUNT)
)
/
(
(DS_NE_CELL_G.BTS_NAME)+(DS_PRD_A_CELL_H.FREECOUNT)
) >2
";
var matches = Regex.Matches(src, @"(?<=\()[^()]+(?=\))");
List<string> collection = matches.Cast<Match>().Select(x => x.Value).ToList();
foreach (var str in collection)
{
Console.WriteLine(str);
}
}
Regex regex = new Regex(@"(?<=\()([^\)]+)(?=\))");
MatchCollection mm = regex.Matches(forContent);
如果forContent=(DS_NE_CELL_G.BTS_NAME)+(DS_PRD_A_CELL_H.FREECOUNT)>2
那么可以 取到集合信息
如果 forContent=((DS_NE_CELL_G.BTS_NAME)+(DS_PRD_A_CELL_H.FREECOUNT))>2
取出来的集合 就有问题了