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

如何创建正则表达式(Regex)实现最多5个字母/数字的分组

可以实现,推荐两步法处理

要满足你的需求,核心是先过滤掉所有非字母数字的字符,再将纯字符序列分割为最多5个字符一组的片段,用正则可以轻松实现:

步骤1:清理文本

先用正则替换掉所有非a-zA-Z0-9的字符,得到纯字母数字字符串。
正则表达式:[^a-zA-Z0-9]
替换为空字符串即可。

比如你的示例文本处理后会得到:Thebookisonthetableand12isanumber

步骤2:分组提取

对清理后的字符串,用正则匹配每一段1-5个连续的字母/数字,全局匹配即可得到所有分组。
正则表达式:.{1,5}

示例代码(Python)

import re

original = "The       book     is on the     table and 12 is     a number"
# 清理非字母数字字符
clean_str = re.sub(r'[^a-zA-Z0-9]', '', original)
# 提取分组
result = re.findall(r'.{1,5}', clean_str)

# 输出结果
for idx, group in enumerate(result, 1):
    print(f"group {idx}: \"{group}\"")

运行后会输出和你示例完全一致的分组结果。

关于一步到位的正则

理论上可以用复杂的正则直接从原文本提取,但需要处理忽略非目标字符的逻辑,实现起来繁琐且兼容性差(不同正则引擎支持程度不同),远不如两步法清晰易维护。

内容的提问来源于stack exchange,提问作者Clayton Bonelli - Agriness

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:47:09