代码之家  ›  专栏  ›  技术社区  ›  t3chb0t

模式在regex101上工作,但不使用google脚本[重复]

  •  -1
  • t3chb0t  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我正在尝试匹配google文档中的一些段落,但是当在google脚本中运行时,我想使用的模式与字符串不匹配。但是,它可以正常工作 regex101 所以我想我错过了什么。你知道吗?

    这是我的一个样本:

    function test() {
      var str = "brown fox → jumps over the lazy dog";
      var definitionRe = new RegExp('([\w\s]+)\s+[\u2192]\s+(.+)', 'g');
      var definitionMatch = definitionRe.exec(str); // null
    
      var dummy = "asdf"; // makes the debugger happy to break here
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Get Off My Lawn    7 年前

    当使用字符串regex时,例如 new RegExp(...) 你需要逃离你的 \ ,那么下面是:

    var definitionRe = new RegExp('([\w\s]+)\s+[\u2192]\s+(.+)', 'g');
    

    将成为这样的转义版本:

    var definitionRe = new RegExp('([\\w\\s]+)\\s+[\\u2192]\\s+(.+)', 'g');
    

    否则,您可以执行非字符串版本,但随后不能再将值连接到字符串(如果您希望这样做的话):

    var definitionRe = /([\w\s]+)\s+[\u2192]\s+(.+)/g;