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

如何用Regex将字符串分割为长度不超过3个字符的单词?

用正则提取符合要求的字母块

要实现你要的效果,核心是提取被非字母字符分隔开、且长度在1-3之间的纯字母序列,用正则就能直接搞定,具体如下:

思路解析

我们需要匹配的子串要满足两个核心条件:

  • 仅由英文字母组成(自动排除数字、标点等无关字符)
  • 长度为1到3个字符,且前后是「非字母字符」或字符串首尾(避免从长字母串里误截取短片段)

正则表达式写法

用这个正则就能精准命中目标:

\b[a-zA-Z]{1,3}\b

各部分含义:

  • \b:单词边界,确保匹配的字母序列前后是非字母(比如数字、标点、字符串开头/结尾)
  • [a-zA-Z]:匹配任意大小写英文字母
  • {1,3}:严格限定子串长度在1到3之间

代码示例(以Python为例)

import re

input_str = "ads1323z123123c123123890sdfakslk123klaad,313ks"
result = re.findall(r'\b[a-zA-Z]{1,3}\b', input_str)
print(result)

运行后输出完全符合你的要求:

['ads', 'z', 'c', 'ks']

为什么这个方案可行?

拆解输入字符串的结构来看:

  • ads 是被引号和数字包围的3字母块,符合匹配规则
  • z 和 c 都是被数字包围的单字母块,顺利被匹配
  • 中间的sdfakslk(8个字母)和klaad(5个字母)长度超过3,不符合{1,3}的限定,不会被选中
  • 最后的ks是被数字和引号包围的2字母块,符合规则被提取

完美匹配你给出的输出结果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:55:06