javascript extract..在值中的第一个下划线处停止

javascript extract..在值中的第一个下划线处停止,javascript,regex,Javascript,Regex,正在尝试从hostname-rt45\u 34\u we\u 35中提取hostname-rt45。我正在使用/()\uu?/g。这似乎不起作用。我已经审阅了regex文档。想用这个吗?会让它变得贪婪,并在第一个下划线处停止。我错过了什么 至少,我已经试过了 /(.*)_?.*/g /(.*)_.*/g ^[^\uz]+可能工作正常 const regex=/^[^33;]+/g; const str=`hostname-rt45\u 34\u we\u 35 `; 让m; while((m

正在尝试从hostname-rt45\u 34\u we\u 35中提取hostname-rt45。我正在使用/()\uu?/g。这似乎不起作用。我已经审阅了regex文档。想用这个吗?会让它变得贪婪,并在第一个下划线处停止。我错过了什么

至少,我已经试过了

/(.*)_?.*/g
/(.*)_.*/g

^[^\uz]+
可能工作正常

const regex=/^[^33;]+/g;
const str=`hostname-rt45\u 34\u we\u 35
`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
控制台日志(匹配);
});

}
您可以查找后面有下划线的非
字符序列(正向前瞻)-():

const regex=/[^]+(?=417;)/;
const str='hostname-rt45_34_we_35';
常量[结果]=str.match(正则表达式);

控制台日志(结果)没有正则表达式的简单解决方案:

var host = 'hostname-rt45_34_we_35';
console.log(host.substring(0,host.indexOf('_')));
indexOf()
返回找到的第一个下划线的索引