我现在有一四则运算表达式,需要将各运算数据提出来,请高手们指点,如以下运算式
中国/日本+(美国*(韩国-朝鲜))*(M5-F8),通过正则运算按顺序提出
中国,日本,美国,韩国,朝鲜,M5,F8, 还要通过另一正则表达式提出运算符 /,+(,*(,-,))*(,-,)运算表达式格式不固定,符合四则运算加括号。

解决方案 »

  1.   

    提出运算符
    Regex re = new Regex(@"[\/\+\-\*\(\)]*", RegexOptions.None);
    MatchCollection mc = re.Matches("text");
    foreach (Match ma in mc)
    {
    }
      

  2.   


    <script type="text/javascript">
    <!--
    var str = "中国/日本+(美国*(韩国-朝鲜))*(M5-F8)";
    alert(str.match(/([\u4e00-\u9fa5]|\w)+/g));
    alert(str.match(/([^\u4e00-\u9fa5])+/g).join(",").match(/\W+/g));
    //-->
    </script>垃圾的CSDN...
      

  3.   

    提出数据
    Regex re = new Regex(@"[^\/\+\-\*\(\)]*", RegexOptions.None);
    MatchCollection mc = re.Matches("text");
    foreach (Match ma in mc)
    {
    }
      

  4.   


      var str = "中国/日本+(美国*(韩国-朝鲜))*(M5-F8)";
      var match = str.match(/[^-\/\+\*()]+/g);
      var _match = str.match(/[-\/\+\*()]/g);
      for(var i =0 ; i<match.length; i++){
        // alert(match[i]);
      }
      for(i=0; i<_match.length; i++){
         //alert(_match[i]);
      }
      

  5.   

    var str = "中国/日本+(美国*(韩国-朝鲜))*(M5-F8)";
    alert(str.split(/[()*+[\]\/-]+/g));
      

  6.   

    漏了一个
    var str = "中国/日本+(美国*(韩国-朝鲜))*(M5-F8)",
    pattern = /[()*+[\]\/-]+/g,
    ret1 = str.split(pattern),
    ret2 = str.match(pattern);
    alert(ret1);
    alert(ret2);
      

  7.   

    谢谢大家的帮助,我测了一下 
    s_liangchao1s,xfsnero运行正确,4L的语法报错,俺不太清楚,来者有分:)