各位大侠们帮我看看 这样的正则表达式怎么写
我要匹配一个函数调用字符串
格式是: myfunction(100,200,300) 我需要从一个文本中找到所有的myfunction()函数调用 函数的参数是随意
要把所有的调用这个函数字符提取出来保存到list中
我写的格式如下:
MatchCollection mc = Regex.Matches(str,"??");
for (int j = 0; j < mc.Count; j++)
{
list.Add(mc[j].Value);
}
请各位帮忙解决 谢谢~~
补充一个:提取出来的字符不包括函数名myfunction()
只是提取里面的参数出来

解决方案 »

  1.   

    (?<=myfunction[(])[^)]+?(?=[)])自己试下
      

  2.   

    MatchCollection mc = Regex.Matches(str,@"myfunction\([^)]*\)"); 
      

  3.   

    (?<=myfunction[(])[^)]+?(?=[)])
    多了个空格..
      

  4.   

    哦。不好意思。没看清楚1楼是正解。。(?<=myfunction[(])[^)]+?(?=[)]) 
      

  5.   

    (? <=myfunction[(])[^)]+?(?=[)]) 正解谢谢大家
      

  6.   

    (?<=myfunction\()[^()]*(\([^()]+?\)[^()]*)*[^)]+?(?=\))
    把myfunction((int)number,(double)d)这种形式考虑进去。。如果不需要嵌套的话,就只要1楼那样就可以了。。如果还有更复杂的,那就得重新写过。
    MatchCollection mc = Regex.Matches(str,@"(?<=myfunction\()[^()]*(\([^()]+?\)[^()]*)*[^)]+?(?=\))"); 
    foreach (Match m in mc) 

     list.Add(m.Value); 
    }