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

如何根据首字母大写分割无空格字符串并提取单词?

提取大驼峰字符串单词的最优方案

嘿,这个需求太常见啦!要从这种大驼峰式(每个单词首字母大写、无空格)的字符串里拆分出单词,同时保留带特殊字符(比如连字符)的完整片段,最优的方法肯定是用正则表达式——简洁高效,还完全贴合你的要求。

核心思路

我们要找的是「不是字符串开头,但后面紧跟着大写字母」的位置,在这些位置插入空格就能完成拆分。这种方式不会碰那些带特殊字符的片段,因为它们内部没有新的大写字母触发拆分。

代码示例(Python)

import re

input_str = "TheseAreAFewWordsAndThis-one-contains-wildcards"
output_str = re.sub(r'(?<!^)(?=[A-Z])', ' ', input_str)
print(output_str)
# 输出结果:These Are A Few Words And This-one-contains-wildcards

正则表达式解释

  • (?<!^):负向零宽断言,确保我们不会在字符串的开头插入空格(不然第一个单词前会多出来个空格)
  • (?=[A-Z]):正向零宽断言,匹配「后面跟着大写字母」的位置
  • re.sub() 会把所有匹配到的位置替换成空格,精准拆分每个单词

其他语言示例(JavaScript)

如果用JS写,逻辑完全一致:

const inputStr = "TheseAreAFewWordsAndThis-one-contains-wildcards";
const outputStr = inputStr.replace(/(?<!^)(?=[A-Z])/g, ' ');
console.log(outputStr);

这个方案的优势在于:

  • 效率高:正则引擎处理零宽断言的速度极快,哪怕是很长的字符串也能瞬间完成
  • 适配性强:完全保留特殊字符片段,不需要额外处理
  • 代码简洁:一行核心代码就能搞定,可读性也不错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:52:30