Sublime Text可通过正则替换实现标题格式:先用(?:^|')([a-z])→\U\1将单词首字母(含撇号后)大写,再用\b(and|or|the|of|in|to|for|on|at|by|is|are|was|were|be|been|being)\b→\L\1处理虚词小写,但首末词需人工保留大写。

用 Sublime 的正则替换实现首字母大写(Title Case)
Sublime Text 本身不内置「转标题格式」功能,但靠 Find → Replace + 正则表达式,两步就能搞定,比装插件更轻量、更可控。
匹配每个单词的首字母(含撇号后字母)
直接搜 \b([a-z]) 会漏掉像 don't 里的 t,因为 't 不被 \b 视为词边界。正确做法是匹配「单词开头或单引号后紧跟的小写字母」:
- 查找内容填:
(?:^|')([a-z]) - 替换为:
\U\1(\U表示后续字符全大写,\1是捕获的第一个小写字母) - 务必勾选
Regular Expression和Case Sensitive
为什么不能只用 \b([a-z])?
常见错误是依赖 \b,但它在 don't 中只匹配 d 和 t 前面的空隙——而 't 的 ' 和 t 之间没有词边界,t 就被跳过了。实际测试会发现 JavaScript's features 变成 Javascript's features,s 没大写。
更稳妥的写法是:(?:^|\s|')[a-z],再配合「替换为」里用 \U + $0,但需先确保没多余空格干扰——所以建议先用 Ctrl+Shift+P 运行 Trim Trailing White Space。
大小写例外词需要手动处理
真正的标题格式(如 APA、Chicago)要求 and、or、the、of 等虚词小写(除非是首/尾词)。Sublime 正则无法智能判断位置,得拆两步:
- 先跑一遍上面的
(?:^|')([a-z])→\U\1,把所有单词首字母大写 - 再单独处理虚词:查找
\b(and|or|the|of|in|to|for|on|at|by|is|are|was|were|be|been|being)\b,替换为\L\1(\L转小写) - 注意:必须把首词和末词排除在外,否则会误改——这一步没法全自动,得人工核对开头和结尾
真正难的不是转换,而是定义「哪些算标题词、哪些不算」;正则能帮你批量机械操作,但语义规则得你自己把关。


















