正则表达式这东西真的特别常用,在搜索文本啊,写爬虫什么的都得用到。而且现如今各种语言,都会支持正则表达式。之前也零零碎碎的看过,但是很多细节都记不清,这里姑且把一些知识要点记录下来,供日后查找使用。

由于正则表达式有很多种实现方式,所以各种方式之间有一些区别。但是以下的一些条件,则是在任何语言的正则中都适用的规律:

. 匹配除“n”之外的任何单个字符。若要匹配包括“n”在内的任意字符,请使用诸如“[sS]”之类的模式。

[^a-z] 反向范围字符。匹配不在指定的范围内的任何字符。例如,“[^a-z]”匹配任何不在“a”到“z”范围内的任何字符。

这里是正则最基础的用法了,熟记这张表,平时就够用了。

当然,我们平时也会看到其他一些符号,比如下面这些类似的符号。

这些元字符也非常普遍,我之所以将他跟上面的通用字符分开,是因为这种类似Perl风格的正则表达式并不能被所有的工具识别。比如Linux下的egrep就无法识别这种表示方法。这就引入了下面的POSIX字符类。

[:cntrl:] ASCII控制码;包括ASCII字符0~31以及127

这里之所以提到POSIX字符类,是因为在shell中无法使用d w 这类的元字符,只能使用POSIX字符类。

以上就是正则最基础的用法了。掌握这些就可以解决绝大多数的问题了。