javascript 正则表达式 贪婪和非贪婪模式
例子: 取出主机名第一部分
var hostNameRe = new RegExp("^(.+)\\.(.+)");
var result = hostNameRe.exec("sh005.cloud.tianxiaoui.com");
console.log(result[1]);
console.log(result[2]);
运行代码:
sh005.cloud.tianxiaoui
com
这明显不是我想要的, 我只想要第一部分的片段, 这个表达式是贪婪模式
var hostNameRe = new RegExp("^(.+?)\\.(.+)");
只要多加一个? 就改成了非贪婪模式.
x*?
x+?
Matches the preceding item x like * and + from above, however the match is the smallest possible match.
For example, /".*?"/ matches '"foo"' in '"foo" "bar"' and does not match '"foo" "bar"' as without the ? behind the *.