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

如何正确拆分字符串、符号与空格?正则表达式优化求助

解决正则拆分非单词字符与空格的问题

修改后的正则表达式

const regex = /[^\w\s]+|\s|[\w][\w'`’‘-]*[\w-]|'|\w+/gm;

验证代码与结果

运行以下代码:

console.log("one!@# two!!?".match(regex) || []);

输出结果:

["one", "!@#", " ", "two", "!!?"]

调整说明

原正则里的\W包含空格字符,导致!@# 这类符号加空格的内容会被合并成一个匹配项。修改后做了两处关键调整:

  1. 把非空格的非单词字符([^\w\s]+)作为优先匹配分支,确保连续符号(如!@#)被单独捕获
  2. 新增\s分支单独匹配空格,让空格从原非单词字符组中分离出来
  3. 保留原有单词匹配逻辑,不影响英文单词(含特殊符号的单词)的提取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:22:44