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

如何用正则提取首个连字符分隔字符串的左右两侧内容

仅按首个连字符拆分字符串的实现方案

你不需要在全量拆分后手动拼接右侧内容,以下两种写法都可以直接得到预期结果:

  • 方法1:利用split原生参数(最简实现)
    JavaScript的split()方法支持传入第二个参数limit,用于限制返回的分割片段最大数量。将该值设为2时,只会在第一个匹配到分隔符的位置完成拆分,字符串后续位置的连字符不会被当作分隔符处理:
    const targetStr = "32 - This-may-contain - hypen-as-well";
    const splitResult = targetStr.split("-", 2);
    // splitResult 结果:["32 ", " This-may-contain - hypen-as-well"]
    
  • 方法2:正则匹配实现(适配自定义规则场景)
    如果后续需要给分隔符加额外匹配规则(比如要求连字符前后必须带空格),可以用正则捕获首个连字符后的全部内容,完成拆分:
    const targetStr = "32 - This-may-contain - hypen-as-well";
    // 正则逻辑:匹配第一个-,捕获其后所有内容,s修饰符支持匹配换行符
    const splitResult = targetStr.split(/-(.*)/s).filter(Boolean);
    // splitResult 结果:["32 ", " This-may-contain - hypen-as-well"]
    

之前写法的问题:直接调用split("-")未传入限制参数时,方法会遍历整个字符串,匹配所有符合的连字符做拆分,因此会把右侧内容里自带的连字符一并切断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:48:26