我想从配置文件剪切路径:
var out = '#Path to the database root';
out += '\ndatadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"';
out += '\nblah-blah-blah-blah-blah';
var re = new RegExp('^datadir="(.*)"', 'g');
var result = out.match(re);
if (result == null){
WScript.Echo("datadir not found");
}
WScript.Echo("datadir=" + RegExp.lastParen);
但是我的代码没有找到必需的字符串。另一方面,如果我删除'插入符号'符号(^
),它的工作原理。这不是一个解决方案,因为我想确保从线路中获取真正以该词开头的数据。
更新 实际上'\ n'对我来说真的是新的一行,尽管单引号。例如
WScript.Echo("out=" + out);
产生
out=#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
blah-blah-blah-blah-blah
我做错了什么?
答案 0 :(得分:2)
A ^
boundary通常锚定到整个输入字符串的开头而不是每条单独行的开头。
m
flag可用于锚定每一行:
var re = new RegExp('^datadir="(.*)"', 'gm');