模式适用于regex101,但不适用于Google Script

时间:2019-01-30 17:30:12

标签: javascript regex google-apps-script

我正在尝试匹配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 个答案:

答案 0 :(得分:0)

在使用字符串正则表达式(例如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;