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

正则匹配class或series时将前导空格替换为横杠,避免重复新增横杠

问题原因

你当前使用的正则前瞻规则是「后面非空白字符中只要包含class或series就命中」,所以哪怕后面的单词已经带横杠(如E-Class),只要包含class片段就会触发空格替换,才会出现多余横杠的问题。

修正后正则

根据实际需求二选一即可:

方案1:仅匹配空格后整个单词为class/series的场景(适配你给出的测试用例)

/\s(?=(?:class|series)\b)/gi

方案2:允许空格后单词以class/series结尾,同时排除已带横杠的场景

/(?<!-)\s(?=[^\s]*(?:class|series)\b)/gi

新增(?<!-)负向后顾规则,要求待替换的空格前面不能是横杠,从根源避免重复加横杠的问题。

测试验证效果

输入字符串替换后结果是否符合预期
' E-Class'' E-Class'是
'E Class''E-Class'是
' E Class'' E-Class'是

JS环境替换示例

const rawStr = '  E-Class E Class  E Series';
const processedStr = rawStr.replace(/\s(?=(?:class|series)\b)/gi, '-');
// 输出结果:  E-Class E-Class  E-Series

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:24:03