跳到主要内容

4.2 匹配空白字符

元字符大致可以分为两种:一种是用来匹配文本的(比如 . ),另一种是正则表达式的语法所要求的(比如 [] )。随着学习的深入,你将发现越来越多的这两种元字符,而我们现在要介绍给大家的是一些用来匹配各种空白字符的元字符。

在进行正则表达式搜索的时候,我们经常会遇到需要对原始文本里的非打印空白字符进行匹配的情况。比如说,我们可能需要把所有的制表符找出来,或者我们需要把换行符找出来,这类字符很难被直接输入到一个正则表达式里,但我们可以使用下表列出的特殊元字符来输入它们。

元字符说明
[\b]回退(并删除)一个字符(Backspace 键)
\f换页符
\n换行符
\r回车符
\t制表符(Tab 键)
\v垂直制表符

例 1

我们来看一个例子。例子中的源文本是 css 源代码,里面有换行符,制表符等,我们在发布前需要会把 css 进行压缩。好多压缩器是这么做的

[\r\n\t\f ]
body {
	background-color: #336633;
	color: #ffffff;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
在工具中查看
body{background-color:#336633;color:#ffffff;margin:0;padding:0;box-sizing:border-box;}

分析

[\r\n\t\f ] 匹配所有的换行符、制表符、换页符和空格,要替换为的文本中没有输入值,也就是要被替换为空,这样就达到了压缩的目的。

提示

"\r\n" 是 Windows 所使用的文本行结束标签。Unix 和 Linux 系统只使用一个换行符来结束一个文本行;换句话说,在 Unix/Linux 系统上匹配空白行只使用 \n\n 即可,不需要加上 \r 。同时适用于 Windows 和 Unix/Linux 系统的正则表达式应该包合一个可选的 \r 和一个必须被匹配的 \n 。你可以在下一章看到一个这样的例子。

一般来说,需要匹配\r、\n 和\t(制表符)等空白字符的情况比较多见,需要匹配其他空白字符的情况要相对少一些。

注意

你已经见过不少元字符了,但你注意到它们之间的差异了吗? .[ 是元字符,但前提是你没有对它们进行转义。 fn 也是元字符,但前提是你对它们进行了转义。如果你没有对 fn 进行转义,它们将被解释为普通字符,只能匹配它们本身。

该内容基于 《正则表达式必知必会》 二度创作
转载请遵守原作者相关协议并注明本页地址
https://iamhefang.cn/tutorials/正则表达式/第四章-使用元字符/4.2-匹配空白字符