正则表达式之字符匹配符

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

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

再举一个通俗的例子:

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

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

[]

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

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

具体的定义格式:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值