【问题标题】:Javascript Regex to split line by commaJavascript正则表达式用逗号分隔行
【发布时间】:2014-03-24 09:17:41
【问题描述】:

我想要一个 javascript 的正则表达式,它应该用逗号分隔行并且不应该在括号内分隔表达式

例如:

BuiltInFunctions.REPLACE_FIRST,Type.STRING, Type.STRING, 2, getArgTypeIns(Type.STRING, Type.STRING, Type.BOOLEAN) 

BuiltInFunctions.REPLACE_FIRST
Type.STRING
Type.STRING
2
getArgTypeIns(Type.STRING, Type.STRING, Type.BOOLEAN)

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    这个正则表达式将用逗号分隔,除了那些后跟括号的:

    /,(?![^(]*\))/m
    

    DEMO

    【讨论】:

      【解决方案2】:

      考虑简化您的操作:

      var input = "BuildInFunctions...........";
      var parentheses = [];
      var replaced = input.replace(/\(.*?\)/g,function(m) {
          parentheses.push(m);
          return "{{PARENS:"+(parentheses.length-1)+"}}";
      });
      var parts = replaced.split(",");
      var result = parts.map(function(part) {
          return part.replace(/\{\{PARENS:(\d+)\}\}/g,function(_,i) {return parentheses[i];});
      });
      

      一般的想法是提取所有带括号的表达式,然后处理拆分,然后将带括号的东西放回去。比尝试使用正则表达式一步完成要容易得多(我不确定这是否可能,说实话)

      【讨论】:

        猜你喜欢
        • 2017-02-02
        • 1970-01-01
        • 2017-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多