正则表达式之字符匹配符

首先要明白字符和字符串的概念,这是我们理解正则表达式基础。

字符串是由数字、字母、下划线以及标点符号组成的一串字符。那么可以理解,字符就是组成字符串的基本元素,是一个不可再分割的单位。

再举一个通俗的例子:

城墙是由砖头搭建的。那么,这里的城墙,就可以看作是字符串,砖头就是字符

我们来看一个最简单的字符匹配符(同时也是一个最简单的正则表达式):

[]

上面的一对中括号,代表在字符串中匹配一个“什么都不匹配”的“字符”,说白了,就是什么都不匹配。从哲学的角度讲,“无”并不代表没有,“无”本身就是无的存在!

如果给出一句话:“卧槽无情”。用我们上面提到的字符匹配符[]”去匹配,看我们能匹配到什么:

正则表达式之字符匹配符_第1张图片

"卧槽无情"这句话,里面并没有不存在的存在,所以没有匹配到任何结果。

我们把我们的字符匹配符改成“[ ]”(中间加了一个空格),代表匹配一个空格字符。
把“卧槽无情”改成“大 数 据”,再来试一下:

正则表达式之字符匹配符_第2张图片

我们匹配到了结果,这个匹配结果就是2个空格。

我们继续延伸,把字符匹配符改成:“[123456]”。去匹配这样一句话:“大 数 据,2020”

正则表达式之字符匹配符_第3张图片

发现没有?我们中括号的内容不管有多长,它永远匹配一个字符。这就是我把它称作“字符匹配符”的原因。在英文著作的原文,它被称作“Character Set”或者“Character Class”,翻译过来就是“字符集”或者“字符组”。但是我认为,把它称为“字符匹配符”更容易理解,因为如果把它称作“字符集”或者“字符组”,我们很容易误解为这里匹配的是一组字符,而不是一个。不管怎么说,具体叫什么名字,读者可以根据自己的喜好走就可以了。

到目前为止,我们可以给“字符匹配符”下一个定义了:

所谓字符匹配符(或者叫字符组、字符集),就是在同一个位置可能出现的各种字符。

具体的定义格式:

[你想匹配的字句列表]
例如:
[0123456789]
[abcdefghijklmnopqrstuvwxyz]
[甲乙丙丁]

到目前为止,我们学会了如何用正则表达式去匹配单个字符。

你可能感兴趣的:(互联网)