史上最简明易懂的正则表达式教程03

By heiry on 2019-05-02 [ in 技术 ]

1.  关于“匹配”一词的理解。

这是正则表达式用的最多的词,但是这个词对于初学者常常给人忽远忽近的感觉,有时候感觉理解了,有时候又觉得被绕进去了,离真正理解还很远。

我们在windows电脑上搜索文件,比如要搜所有MP4格式的视频,可以在搜索栏中输入“*.MP4”,搜索出来的文件就是mp4视频文件,假设搜索结果如下:

精通java.mp4
战狼2.MP4
三国央视版.MP4

用正则词汇来说,“*.MP4”匹配“精通java.mp4”、“战狼2.MP4”、“三国央视版.MP4”等字符串。

用我们通俗的话来说,“*”字符能代表“精通java”、“战狼2”、“三国央视版”等字符串,匹配就是这个正则表达式能代表这个字符串。

匹配结果,就是按照正则表达式的规则,在字符串中能不能找到符合此规则的字符串,能找到多少个字符串。如果不能找到称为不匹配,如果能找到一个或者多个,则每一个都称为一个匹配。

匹配这个词之所以常常令人费解,那是因为很多书把这个词义经常混淆一起用,把初学者搞晕了。

匹配有三种形式的存在:

——形容词性质的匹配:一个字符串“契合”一个正则,用于判断输出true或false。

——动词性质的匹配:在字符串中搜索符合正则的字符串。

——名词性质的匹配:字符串中满足正则的一部分,每一个部分都称为一个匹配。

这几个混在一起,很容易把人搞懵了。其实你只需要记住,匹配就是根据正则表达式这个“规则”,能在字符串中找到子字符串,就是匹配,就是这么简单。

2. 关于字符串的理解

正则表达式是判断、搜索字符串的专门语言,处理的一切对象都是字符串(文本也是字符串的一种,只不过包含换行等特殊符号而已),没有其他数据类型之分。

比如,对“18790”,我们在其它语言如C、Java、PHP中会认为这是一个数字,是一个整体,但是在正则中,它只是由5个数字组成的字符串,对,只是字符串而已,和“abcde”性质是一样的,并非一整数。

 

 

 >>



© 2009-2024 MOSANG.NET DESIGNED BY HEIRY