跳至正文

添加/删除行号

为文本添加或删除行号的免费在线工具。

Use Cases

  • Code snippets and examples
  • Documentation and tutorials
  • Ordered lists and instructions
  • Log files and debugging
  • Text file analysis

Separator Examples

Dot (.):
1. First line
2. Second line
3. Third line
Parenthesis ():
1) First line
2) Second line
3) Third line
Pipe (|):
1| First line
2| Second line
3| Third line

主要功能

  • 添加/删除模式: 添加或删除行号
  • 设置起始编号: 从所需编号开始
  • 选择分隔符: 6 种分隔符样式
  • 对齐选项: 使用填充进行整齐对齐
  • 自动检测: 删除模式自动识别编号模式
  • 即时复制: 一键复制结果

分隔符样式

1. 点号 (Dot)

1. First line
2. Second line
3. Third line

使用场景: 通用列表、文档

2. 括号 (Parenthesis)

1) First line
2) Second line
3) Third line

使用场景: 有序列表、步骤指南

3. 冒号 (Colon)

1: First line
2: Second line
3: Third line

使用场景: 日志文件、数据分析

4. 竖线 (Pipe)

1| First line
2| Second line
3| Third line

使用场景: 代码示例、终端输出

5. 方括号 (Bracket)

1] First line
2] Second line
3] Third line

使用场景: 技术文档、引用

6. 花括号 (Brace)

1} First line
2} Second line
3} Third line

使用场景: 特殊格式、独特样式

对齐选项

无填充

1. Line one
2. Line two
...
98. Line ninety-eight
99. Line ninety-nine
100. Line one hundred

应用填充

  1. Line one
2. Line two
...
98. Line ninety-eight
99. Line ninety-nine
100. Line one hundred

使用填充可使所有编号宽度一致对齐。

使用案例

1. 代码片段

1. def fibonacci(n):
2. if n <= 1:
3. return n
4. return fibonacci(n-1) + fibonacci(n-2)

2. 文档编写

1. 简介
2. 安装方法
3. 使用方法
4. 故障排除
5. 参考资料

3. 日志文件分析

1: [2024-01-15 10:30:00] INFO: Server started
2: [2024-01-15 10:30:05] INFO: Connection established
3: [2024-01-15 10:30:10] ERROR: Timeout occurred
4: [2024-01-15 10:30:15] INFO: Retry attempt 1

4. 歌词或诗歌

1| 第一行
2| 第二行
3| 第三行
4| 第四行

5. 食谱步骤

1) 准备食材
2) 预热平底锅
3) 放入食材翻炒
4) 烹饪 5 分钟
5) 盛盘上桌

编程示例

JavaScript

// 添加行号
function addLineNumbers(text, start = 1, separator = '.') {
const lines = text.split('\n');
const maxDigits = String(start + lines.length - 1).length;

return lines.map((line, index) => {
const lineNumber = start + index;
const padded = String(lineNumber).padStart(maxDigits, ' ');
return `${padded}${separator} ${line}`;
}).join('\n');
}

// 删除行号
function removeLineNumbers(text) {
const lines = text.split('\n');
return lines.map(line => {
return line.replace(/^\s*\d+[.:)|\]}\s]\s*/, '');
}).join('\n');
}

// 使用示例
const text = "Hello\nWorld\nTest";
const numbered = addLineNumbers(text, 1, '.');
console.log(numbered);
/*
1. Hello
2. World
3. Test
*/

const removed = removeLineNumbers(numbered);
console.log(removed);
/*
Hello
World
Test
*/

Python

def add_line_numbers(text, start=1, separator='.', padding=True):
lines = text.split('\n')
max_digits = len(str(start + len(lines) - 1))

result = []
for i, line in enumerate(lines):
line_number = start + i
if padding:
padded = str(line_number).rjust(max_digits)
else:
padded = str(line_number)
result.append(f"{padded}{separator} {line}")

return '\n'.join(result)

def remove_line_numbers(text):
import re
lines = text.split('\n')
return '\n'.join([
re.sub(r'^\s*\d+[.:)|\]}\s]\s*', '', line)
for line in lines
])

# 使用示例
text = "Hello\nWorld\nTest"
numbered = add_line_numbers(text, 1, '.', True)
print(numbered)

高级技巧

1. 仅为特定行编号

# 跳过空行
def add_numbers_skip_empty(text, start=1):
lines = text.split('\n')
number = start
result = []

for line in lines:
if line.strip(): # 如果不是空行
result.append(f"{number}. {line}")
number += 1
else:
result.append(line)

return '\n'.join(result)

2. 反向编号

# 最后一行为 1 号
def add_reverse_numbers(text):
lines = text.split('\n')
total = len(lines)

return '\n'.join([
f"{total - i}. {line}"
for i, line in enumerate(lines)
])

3. 仅奇数/偶数编号

# 仅奇数行编号
def add_odd_numbers(text):
lines = text.split('\n')
return '\n'.join([
f"{i*2+1}. {line}" if i % 2 == 0 else line
for i, line in enumerate(lines)
])

实用场景

场景 1: 代码审查

用途: 代码审查时引用特定行

# 审查者
请改进第 10 行的逻辑。
第 25-30 行建议分离为函数。

场景 2: 教育材料

用途: 逐步说明

1. 声明变量 x
2. 为 x 赋值
3. 输出 x

场景 3: 会议记录

用途: 议程编号

1) 上次会议回顾
2) 新项目讨论
3) 预算审查
4) 下次会议日程

场景 4: 测试用例

用途: 测试顺序

1: 登录测试
2: 数据输入测试
3: 保存功能测试
4: 删除功能测试

常见问题

Q: 可以从特定编号开始吗?

A: 可以,"起始编号"选项可设置所需编号。

Q: 删除时能识别所有编号格式吗?

A: 可以,识别常见模式(1., 1), 1:, 1| 等)。

Q: 中间的空行如何处理?

A: 空行也会编号。如需跳过请手动处理。

Q: 可以处理很长的文本吗?

A: 可以,在浏览器内存限制内可处理。

相关工具


💬 这个工具对您有帮助吗?

如果您觉得行号工具有用,请分享给其他人!

隐私保护

此工具完全在浏览器客户端运行。您输入的所有数据都不会发送到服务器,仅在浏览器中处理。