一些实用的正则表达式
Table of Contents
请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com
生成一个正则表达式,把每一个中文自然段落前的空格都去掉
可以使用以下正则表达式来去除每个中文自然段落前的空格:
正则表达式:
^[ \t ]+
替换为: 空字符串(即删除匹配到的内容)
解释:
^
匹配行的开头(在多行模式下)。[ \t ]+
匹配一个或多个:- 半角空格(
- 制表符(
\t
) - 全角空格(
\u3000
)
- 半角空格(
使用方式:
- 启用多行模式(
/m
标志),使^
能匹配每行的开头。 - 全局匹配(
/g
标志),处理所有符合条件的空格。
示例(JavaScript):
const text = ` 这是一个前面有半角空格的段落。
这是一个前面有全角空格的段落。
Another mixed space paragraph.`;
const result = text.replace(/^[ \t ]+/gm, '');
console.log(result);
输出:
这是一个前面有半角空格的段落。
这是一个前面有全角空格的段落。
Another mixed space paragraph.
注意事项:
- 该正则表达式会删除每行开头的所有空格(包括全角/半角),适用于典型的首行缩进场景。
- 如果段落中存在需要保留的非开头空格(如英文单词间的空格),不会被误删。
- 如果文本包含代码块等需要保留缩进的结构,建议先提取自然段落再处理。
生成一个正则表达式,删除空白行,纯空格符的行也算空白行
可以使用以下正则表达式删除所有空白行(包括仅含空格/制表符等空白字符的行):
正则表达式:
^\s*$
替换为: 空字符串(即删除匹配到的整行)
解释:
^
匹配行的开头(需启用多行模式)\s*
匹配零个或多个空白字符(包括:空格、制表符\t、换页符等)$
匹配行的结尾(需启用多行模式)
使用方式:
- 启用多行模式 (
/m
标志),使^
和$
能匹配每行的开头和结尾 - 全局匹配 (
/g
标志),处理所有符合条件的行
示例(JavaScript):
const text = `第一段内容(非空白行)
(纯空格/全角空格行)
\t\t(制表符行)
(空行)`;
const result = text.replace(/^\s*$/gm, '');
console.log(result);
输出结果:
第一段内容(非空白行)
(空行)
进阶优化版:
如果希望同时删除连续的多个空白行(将多个连续空白行合并为一个空行):
^\s*$\n+
替换为:
\n
不同场景的适配:
场景 | 正则表达式 | 说明 |
---|---|---|
删除所有空白行 | ^\s*$ |
包括纯空格/制表符行 |
保留至少一个空行 | ^\s*$(?=\n^\s*$) |
将多个连续空白行合并为一个空行 |
处理 CRLF 换行符(Windows) | ^\s*\r?\n |
适配 \r\n 换行符 |
注意事项:
- 在 VSCode、Sublime 等编辑器中直接使用
^\s*$
即可 - 在 Notepad++ 中需使用
^\s+$\r?\n
来包含换行符 - 如果文件最后一行是空白行,可能需要额外处理文件末尾的空行
word中把空白行删除的方法是什么
在 Microsoft Word 中删除空白行(包括仅含空格/制表符的"伪空白行"),可以通过以下 3 种方法实现:
方法 1:使用查找替换(推荐)
适用场景:快速批量删除所有空白行
- 按
Ctrl + H
打开替换对话框 - 在 查找内容 输入:
(^p^p
^p
表示段落标记/换行符) - 在 替换为 输入:
^p
- 点击 全部替换,重复操作直到提示"已完成 0 处替换"
- 继续处理含空格的"伪空白行":
- 在 查找内容 输入:
(^w^p
^w
表示任意空白字符,包括空格/制表符) - 替换为 留空
- 点击 全部替换
- 在 查找内容 输入:
方法 2:显示隐藏符号后手动删除
适用场景:少量空白行处理
- 点击 开始 选项卡 -> ¶ 显示/隐藏编辑标记
- 识别以下两种空白行:
- 纯空白行:连续两个
¶
符号 - 伪空白行:行内有空格
·
或制表符→
,结尾带¶
- 纯空白行:连续两个
- 手动删除这些行
方法 3:通过段落设置过滤
适用场景:保留段落结构的同时压缩空白
- 全选文本 (
Ctrl + A
) - 右键选择 段落
- 在 间距 部分:
- 段前间距:设置为
0 行
- 段后间距:设置为
0 行
- 行距:选择 单倍行距
- 段前间距:设置为
进阶技巧:使用通配符(支持复杂匹配)
- 按
Ctrl + H
打开替换对话框 - 勾选 使用通配符
- 查找内容输入:
([ ]{1,}^13
[ ]
表示任意空格,{1,}
表示至少 1 个,^13
是段落标记的 ASCII 码) - 替换为输入:
^p
- 点击 全部替换
⚠️ 注意事项
- 操作前建议 备份文档
- 如果处理网页复制的文本,建议先执行
Ctrl + A
->Ctrl + Q
清除格式 - 不同版本 Word 的段落标记可能有差异:
- Windows:
^p
(CR+LF) - macOS:
^r
(CR)
- Windows:
生成一个通配符,在word中,把每一个中文自然段落前的空格都去掉。
在 Microsoft Word 中使用通配符删除中文段落前的空格,可按照以下步骤操作:
最终解决方案
通配符表达式:
(^13|^)([ ]{1,})([一-鿿])
替换为:
\1\3
分步操作指南
-
打开替换对话框
按下Ctrl + H
打开查找和替换窗口。 -
启用通配符模式
- 点击左下角 更多 → 勾选 使用通配符
-
输入表达式
- 查找内容:
(<^13|^)([ ]{1,})([一-鿿])
(直接复制以下内容到输入框,确保包含半角空格和全角空格)(^13|^)([ ]{1,})([一-鿿])
- 替换为:
\1\3
- 查找内容:
-
执行替换
点击 全部替换,即可删除所有中文段落前的空格。
原理解释
组件 | 说明 |
---|---|
`(^13 | ^)` |
([ ]{1,}) |
匹配 1 个及以上半角空格/全角空格(需手动输入这两种空格),对应 \2 |
([一-鿿]) |
匹配任意中文字符(Unicode 范围),对应替换结果的 \3 |
通过保留段落标记/文档开头 (\1
) 和首个中文字符 (\3
),精准移除中间的空格。
实际效果演示
替换前:
^13 这是带半角空格的段落
^13 这是带全角空格的段落
文档开头的空格段落
替换后:
^13这是带半角空格的段落
^13这是带全角空格的段落
文档开头的空格段落
注意事项
-
空格输入技巧
- 在「查找内容」中需手动输入:
- 半角空格:按键盘空格键
- 全角空格:切换中文输入法,按
Shift + 空格
后输入
- 在「查找内容」中需手动输入:
-
兼容性验证
此方案适用于:- Microsoft Word 2010 及以上版本
- 中英文混合排版场景(不会误删英文单词间的空格)
-
进阶扩展
如需同时删除段首的 数字/字母前空格,可将[一-鿿]
改为[一-鿿a-zA-Z0-9]
失败排查表
现象 | 原因 | 解决方案 |
---|---|---|
提示“未找到搜索项” | 未正确输入全角空格 | 在查找框中手动输入全角空格 |
替换后段落标记丢失 | 错误删除 ^13 |
检查表达式中的 `(^13 |
中文后的空格未被删除 | 未启用通配符模式 | 勾选「使用通配符」 |
通过此方案,可高效解决中文段落首行缩进清理问题。