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

如何使用正则表达式匹配数字值分割纯数字字符串?

使用正则表达式分割连续相同数字的字符串

要实现把纯数字字符串按连续重复的数字分组(比如把"11222344"拆成["11","222","3","44"]),用正则表达式就能轻松搞定,核心思路是匹配连续重复的单个数字。

核心正则表达式

这里用到的关键正则是:/(\d)\1*/g

来拆解一下这个正则的逻辑:

  • (\d):捕获任意单个数字,把它存到第一个分组里
  • \1*:匹配和第一个分组里完全相同的数字,允许0次或多次重复(这样就能把连续的相同数字串起来)
  • g:全局匹配标记,确保遍历整个字符串,找出所有符合条件的连续数字序列

代码示例(JavaScript)

直接用match()方法就能得到想要的结果:

const inputStr = "11222344";
const groupedDigits = inputStr.match(/(\d)\1*/g);
console.log(groupedDigits); // 输出: ["11","222","3","44"]

代码示例(Python)

Python里可以用re.finditer()来获取所有匹配对象,再提取完整匹配的子串:

import re

input_str = "11222344"
matches = re.finditer(r'(\d)\1*', input_str)
grouped_digits = [match.group() for match in matches]
print(grouped_digits) # 输出: ['11', '222', '3', '44']

额外提示

如果需要确保输入是纯数字字符串(避免混入非数字字符导致错误),可以先做个验证:

  • JavaScript:if (/^\d+$/.test(inputStr)) { ... }
  • Python:if input_str.isdigit(): ...

这样就能保证处理的是符合要求的输入啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:59:06