这个问题在这里已有答案:
我正在尝试匹配Google文档中的某些段落,但我想要使用的模式与在Google Script中运行时的字符串不匹配。但是,它在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
}
当使用字符串正则表达式如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;