【问题标题】:JavaScript Regex match including blank lineJavaScript 正则表达式匹配,包括空行
【发布时间】:2015-11-10 17:21:27
【问题描述】:

如何使用 javascript 正则表达式在 name= 之间进行匹配,包括下一个空白行,并在下一行中包含第一个单词。

因此,最终得到以下三个匹配项

  1. “fieldA”值1

  2. “fieldB”值2

  3. “fieldC”值3

    undefined------WebKitFormBoundaryaP6MZ2PjlD5N249N
    Content-Disposition: form-data; name="fieldA"
    
    value1
    ------WebKitFormBoundaryaP6MZ2PjlD5N249N
    Content-Disposition: form-data; name="fieldB"
    
    value2
    ------WebKitFormBoundaryaP6MZ2PjlD5N249N
    Content-Disposition: form-data; name="fieldC"
    
    value3
    

我试过了

 var regExp = /name=(.*)/g,
 meta = [],
 matches = data.match(regExp);

但这会导致'name="fieldA"'

我想捕获到该值,并排除实际的 'name='

提前谢谢你。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    您可以使用这个基于前瞻的正则表达式:

    /\bname=([\S\s]*?)(?=\s*-{6}|$)/gi
    

    RegEx Demo

    这将匹配从 name= 直到 6 个连字符或文件结尾。

    【讨论】:

      【解决方案2】:

      使用以下正则表达式

      Regex101 Live Demo

      /name="(\w+)"\n+(\w+)/
      
      1. name=":字面上匹配
      2. "(\w+)":匹配用双引号括起来的字母数字字符串并添加到第一个捕获的组中
      3. \n+:匹配一个或多个换行符。在这种情况下,\n{2} 也可以使用。
      4. (\w+):第二组抓获

      要访问捕获的组,请使用带有全局标志的 RegExp#exec

      var obj = {};
      var regex = /name="(\w+)"\n+(\w+)/g;
      while(m = regex.exec(str)) {
          obj[m[1]] = m[2];
      }
      console.log(obj);
      

      var str = 'undefined------WebKitFormBoundaryaP6MZ2PjlD5N249N\
      Content-Disposition: form-data; name="fieldA"\
      \
      value1\
      ------WebKitFormBoundaryaP6MZ2PjlD5N249N\
      Content-Disposition: form-data; name="fieldB"\
      \
      value2\
      ------WebKitFormBoundaryaP6MZ2PjlD5N249N\
      Content-Disposition: form-data; name="fieldC"\
      \
      value3';
      
      var obj = {};
      
      // Changed the regex to use `\n*` for Demo Purpose
      var regex = /name="(\w+)"\n*(\w+)/g;
      
      while (m = regex.exec(str)) {
        obj[m[1]] = m[2];
      }
      console.log(obj);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多