在平时的工作中,经常会用到正则来搜索、编辑文本。最近恰好碰到个场景,需要筛选出符合某些条件的任意字符,包括换行符,即结果可能是多行文本。匹配任意字符很简单:使用 .*
即可,但在大多数情况下是把换行符排除在外的。
因此,我们需要利用高中学习的一个基础知识来造一个包含任意字符的全集:一个集合和他的补集的并集是全集。
我们知道正则里有 3 个最常用的集合:\d
是数字的集合,\s
是空白符的集合, \w
是字母和数字的集合。可能也知道对应的 \D
是非数字的集合,\S
是非空白符的集合,\W
是非字母非数字的集合。因此我们可以使用 [\d\D]
或 [\s\S]
或 [\w\W]
来表示包括换行符在内的任意字符。
这个小技巧可以用在不方便进行多行匹配的场景里,能降低不少工作量。