使用Sublime正则表达式批量给行首加序号

夜辰君_7468

夜辰君_7468

2026-10-23

332人浏览

原创

最稳定无需插件的方法是用正则^匹配行首+find all生成多光标,再调用内置“insert numbers”命令批量插入序号;若需跳过空行,查找式改为^(?=\s);自动化复杂场景建议用python脚本配合re.sub动态计数。

使用sublime正则表达式批量给行首加序号

用 ^ 匹配行首并结合替换计数实现序号插入

Sublime Text 本身不支持在替换中直接调用递增变量(比如 $1 不能自动变成 1,2,3…),但可以通过「查找→替换」+「正则匹配行首」+「手动触发多次替换」或「配合插件」绕过限制。最稳定、无需插件的方法是:先用正则选中所有行首位置,再用 Sublime 的「多光标+数字输入」技巧批量填入序号。

常见错误是直接写 ^ 却没勾选「正则表达式」开关,或者误以为 \n 能匹配当前行首——其实 ^ 才是行首锚点,且必须开启「Regular Expression」模式才生效。

  • 打开「Find → Replace」(Ctrl+H / Cmd+H)
  • 勾选 .* 按钮(启用正则)
  • 查找框填:^
  • 替换框留空(先不填,等下一步)
  • 点「Find All」——这时每行开头都会出现一个光标

用多光标+数字列输入快速生成连续序号

Sublime 的多光标特性可以配合「列编辑」和「数字输入」完成序号注入,比写 Python 插件或导出再处理更轻量。前提是确保所有目标行都被选中且光标精准落在行首(即 ^ 匹配的位置)。

注意:如果文件含空行,^ 仍会匹配它们,导致空行也被编号。若需跳过空行,查找式应改为:^(?=\S)(正向先行断言,只匹配非空行的行首)。

  • 执行完「Find All」后,按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调出命令面板
  • 输入「Insert Numbers」并回车(这是 Sublime 内置功能,无需额外安装)
  • 默认从 1 开始、步长为 1;如需从 100 开始,可在命令面板里输「Insert Numbers 100」
  • 序号会从第一行光标位置开始依次填入,严格按光标顺序,不是按文件行号

用 regex + subl 命令行配合 Python 脚本做真正自动化

如果需要重复处理大量文件,或序号逻辑复杂(比如按章节分组重置、跳过注释行),靠 GUI 操作效率低且难复现。这时建议用 Sublime 的命令行工具 subl 配合外部 Python 脚本处理文本流。

Viggle AI
Viggle AI

Viggle AI是一款把图片角色按参考动作生成动画视频的 AI 动作生成工具。

下载

关键点在于:Sublime 自身的正则替换不支持动态计数,但 Python 的 re.sub 可以传函数作为替换参数,天然支持递增逻辑。别试图在 Sublime 查找框里写 \n 或 $0 来模拟计数——它不认。

  • 保存待处理文件为 input.txt
  • 运行脚本:
    python3 -c "
    import re, sys
    cnt = [0]
    with open(sys.argv[1]) as f:
        text = f.read()
    result = re.sub(r'^', lambda m: str((cnt[0]:=cnt[0]+1)) + '. ', text, flags=re.M)
    print(result)
    " input.txt > output.txt
  • flags=re.M 是必须的,否则 ^ 只匹配整个字符串开头
  • 该脚本会为每一行加「1. 」「2. 」前缀;如需纯数字(无点空格),改 str(cnt[0]) + ' '

为什么不用 \n 或 $& 在替换框里凑序号

有人试过在替换框写 1. $& 然后点「Replace All」,结果所有行都变成「1. 」——因为 $& 是匹配内容(这里是空字符串),而 Sublime 不解析数字里的自增逻辑。它把 1 当成字面量,不是变量。

另一个典型误区是认为「Find All」后按 Home 能把光标移到每行行首——实际上 Home 行为受设置影响(比如是否启用「Scroll Past End」),不可靠。必须用 ^ + 「Find All」确保光标准确落在行首位置。

真正麻烦的地方不在怎么加序号,而在于「哪些行该加」——是所有行?跳过空行?跳过以 # 开头的注释?这些判断没法靠单个正则一劳永逸,得根据实际文本结构调整匹配逻辑,而不是迷信某个万能替换式。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4456

8

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

2023.07.05

2961

4

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

8162

9

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

2023.08.11

812

5

正则表达式空格
正则表达式空格

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

520

5

Python爬虫获取数据的方法
Python爬虫获取数据的方法

Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

673

12

正则表达式空格如何表示
正则表达式空格如何表示

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

2023.11.17

386

3

正则表达式中如何匹配数字
正则表达式中如何匹配数字

正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.12.06

719

7

php正则表达式有哪些
php正则表达式有哪些

php正则表达式有"/pattern/"、"^"、"$"、"."、"[]"、"[^]"、"[a-z]"、"[A-Z]"、"[0-9]"、"\d"、"\D"、"\w"、"\W"、&a

2024.02.23

312

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程