一个小问题: 用C#和正则表达式进行一个简单的公式分析 我现在想进行公式分析:有如下MYHIGH:(OPEN-REF(HIGH,1))/MA(CLOSE,20),COLORGREEN;MYLOW:(OPEN-REF(LOW,1))/MA(CLOSE,20),COLORRED;想用正则表达式的方法将公式中的部分内容提取出来,如下:(OPEN-REF(HIGH,1))/MA(CLOSE,20),(OPEN-REF(LOW,1))/MA(CLOSE,20), 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 俺笨,求简洁的 string cc = "MYHIGH:(OPEN-REF(HIGH,1))/MA(CLOSE,20),COLORGREEN; MYLOW:(OPEN-REF(LOW,1))/MA(CLOSE,20),COLORRED; "; List<string> dd = new List<string>(); MatchCollection mc2 = Regex.Matches(cc, @":(.*?)\),"); foreach (Match m in mc2) { if (!dd.Contains(m.Groups[1].Value)) { dd.Add(m.Groups[1].Value + ")"); } } Regex reg=new Regex(@"(?<=MY\w+?:).+?(?=,COLOR)"); 不是已经告诉你答案了吗?晕,难道要这样写才能明白?Regex reg=new Regex(@"(?<=MY\w+?:).+?(?=,COLOR)");string str = "MYHIGH:(OPEN-REF(HIGH,1))/MA(CLOSE,20),COLORGREEN; MYLOW:(OPEN-REF(LOW,1))/MA(CLOSE,20),COLORRED; ";string result="";foreach(Match m in reg.Matchs(str)){result+=m.Value+"\r\n";}result输出为:(OPEN-REF(HIGH,1))/MA(CLOSE,20)(OPEN-REF(LOW,1))/MA(CLOSE,20) (?<=MY\w+?:).+?(?=,COLOR)请高手解释一下这些字母的意思,我真是不明白。 就是匹配以“MY(后面还有些其他字母):”开头并且以“,COLOR”结束的字符串的中间部分。 foreach(Match m in reg.Matchs(str))应为foreach(Match m in reg.Matches(str)) 求目标函数最大化 一个小小的问题,请大侠看一下 C# 连接 Excel AJAX问题 excel导入数据库时出现的问题,200分解决!谢谢 xml属性问题求助!!!!!!!!!!!!!!!(来者均给高分) 有没有办法操作DataGridViewButtonCell中的button 在线等待 菜鸟请教问题,大家进来看看?? SOCKET编程计问题,如何从一台计算机上COPY一个文件到另外一台算机上?用C#的SOCKET控件如何实现? textbox定位问题 使用dataGrid控件,如何更新数据库。
俺笨,求简洁的 string cc = "MYHIGH:(OPEN-REF(HIGH,1))/MA(CLOSE,20),COLORGREEN; MYLOW:(OPEN-REF(LOW,1))/MA(CLOSE,20),COLORRED; "; List<string> dd = new List<string>();
MatchCollection mc2 = Regex.Matches(cc, @":(.*?)\),");
foreach (Match m in mc2)
{
if (!dd.Contains(m.Groups[1].Value))
{
dd.Add(m.Groups[1].Value + ")");
}
}
晕,难道要这样写才能明白?Regex reg=new Regex(@"(?<=MY\w+?:).+?(?=,COLOR)");
string str = "MYHIGH:(OPEN-REF(HIGH,1))/MA(CLOSE,20),COLORGREEN; MYLOW:(OPEN-REF(LOW,1))/MA(CLOSE,20),COLORRED; ";
string result="";
foreach(Match m in reg.Matchs(str))
{
result+=m.Value+"\r\n";
}
result输出为:
(OPEN-REF(HIGH,1))/MA(CLOSE,20)
(OPEN-REF(LOW,1))/MA(CLOSE,20)
应为foreach(Match m in reg.Matches(str))