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

JavaScript:将含数字与运算符的字符串拆分为对应数组

简便实现方法:正则表达式捕获组拆分

最简便的方式是利用正则表达式的捕获组配合字符串拆分方法,既能精准拆分出数字,又能完整保留运算符本身,一行代码就能搞定需求。

原理说明

正则里的括号()代表捕获组,当使用split方法时,如果正则包含捕获组,匹配到的分隔符(也就是这里的+、x、-、/)会被一同包含在结果数组中,刚好符合你要的[数字, 运算符, 数字, 运算符...]结构。

JavaScript 示例代码

const inputStr = '12+345x6/789';
// [+\-x\/]匹配所有目标运算符,括号将其作为捕获组保留
const splitResult = inputStr.split(/([+\-x\/])/);
console.log(splitResult); // 输出: ["12", "+", "345", "x", "6", "/", "789"]

Python 示例代码

import re

input_str = '12+345x6/789'
# r前缀表示原始字符串,避免转义字符冲突
split_result = re.split(r'([+\-x/])', input_str)
print(split_result) # 输出: ['12', '+', '345', 'x', '6', '/', '789']

额外小提示

如果你的输入字符串可能存在开头/结尾是运算符的情况(比如+12-3),拆分结果会出现空字符串,这时候可以加一步过滤:

  • JavaScript: splitResult.filter(Boolean)
  • Python: [item for item in split_result if item]

这种方法的优势在于代码简洁、逻辑清晰,不需要手动遍历字符判断数字和运算符的边界,正则引擎会帮我们处理所有匹配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:42:35