今天来聊聊正则表达式。
之前,每次用到正则表达式,都要先上网搜索,再不停的试。
也系统的学习了一下正则表达式,但总是感觉学的时候明白了,用的时候又不会。
今天咱们先搞明白什么是正则表达式,有什么用。
简单的说,正则表达式是用于处理字符串的一种方法。
我们处理字符串常用的操作有查找、删除、替换。
进一步,我们还要明白,正则表达式是一个表示式,是对某一特定字符表示的逻辑公式,是一种字符串的表示法,他并不是一个工具程序。
如果你想要以正则表达式的方式处理字符串,就得要使用支持正则表达式的工具程序才行。如Unix命令vi,sed,awk,grep,各种计算机语言等。
正则表达式最初是被用来作为描述科人类神经系统工作原理的一种表达式,后被Unix之父引入Unix系统中,自此以后,正则表达式被广泛地应用到各种UNIX或类似于UNIX的工具中,如Unix命令vi,sed,awk,grep都支持正则表达式。
再后来,正则表达式在各种计算机语言或各种应用领域得到了广大的应用和发展,如delphi、Scala、PHP、C#、Java、C++、Objective-c、Swift、VB、Javascript、Ruby以及Python等。
另外,要向大家报告一下,正则表达式与通配符是完全不同的东西!这很重要。因为通配符与正则表达式真的很容易混淆。
通配符主要有星号(*)和问号(?)。
在通配符当中的*代表的是零到无限多个字符的意思,但在正则表达式当中,则是重复0到无穷多个的前一个正则表达式字符。所以在正则表达式中,代表零到无限多个字符是.*, .表示任意字符。
在通配符当中,?代表任意单个字符,但在正则表达式中则是匹配前面的子表达式零次或一次, 代表任意单个字符的是. 。
下次我们再聊聊正则表达式的高级用法。