You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript文本匹配问询:如何实现两类指定输出结果

JavaScript正则匹配问题解答

原始代码:

let text = "01110010100111101000111";
let result = text.match(/01/g); // 仅修改此行
console.log(result);

问题1:生成指定输出数组

要让match返回数组['01','','10','0101','','01','','','01010','','01','','',''],需要匹配所有0和1的交替序列(包括0101、01010这类长序列),同时在无交替序列的位置返回空串。注意直接匹配空串会导致全局匹配无限循环,因此我们优先匹配长序列,再用位置限定的方式匹配空串:

let result = text.match(/01010|0101|01|10|(?!^)(?<=.)/g);

这个正则会按优先级先匹配最长的交替片段,再匹配短交替序列,最后在每个非开头的字符后位置匹配空串,刚好对应目标输出的数组结构。

问题2:提取目标子串

要得到输出'01110010100111101000'(即去掉原始字符串末尾的三个1),可以利用正向预查精准匹配末尾三个1之前的所有内容:

// 直接获取目标字符串(需添加[0]提取匹配结果)
let result = text.match(/^.*(?=1{3}$)/)[0];

如果要求仅修改正则部分(不添加[0]),可以使用全局匹配确保返回的数组仅包含目标子串:

let result = text.match(/^.*(?=1{3}$)/g);

此时console.log(result)会输出['01110010100111101000'],业务中可通过result[0]直接获取目标字符串。

内容的提问来源于stack exchange,提问作者marivic valdehueza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:25:15