模式在regex101上运行但不适用于Google脚本[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模式在regex101上运行但不适用于Google脚本[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在尝试匹配Google文档中的某些段落,但我想要使用的模式与在Google Script中运行时的字符串不匹配。但是,它在regex101上正常工作,所以我想我错过了一些东西。你知道吗?

这是我的样本:

function test() {
  var str = "brown fox → jumps over the lazy dog";
  var definitionRe = new RegExp('([ws]+)s+[u2192]s+(.+)', 'g');
  var definitionMatch = definitionRe.exec(str); // null

  var dummy = "asdf"; // makes the debugger happy to break here
}
答案

当使用字符串正则表达式如new RegExp(...)时,你需要逃避你的,所以接下来:

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

将成为这样的转义版本:

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

否则你可以做一个非字符串版本,但你不能再将值连接到字符串(如果这是你想要的):

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

以上是关于模式在regex101上运行但不适用于Google脚本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式适用于 regex101.com,但不适用于 prod

正则表达式适用于 regex101.com,但不适用于 prod

RegEx 不适用于 .NET,但适用于其他 RegEx 实现

RegEx 替换适用于 Ruby gsub,但不适用于 sed

sql 脚本适用于 MySQL,但不适用于 google bigquery

Compass适用于真实设备,但不适用于Emulator