一、什么是正则表达式
在进行文本处理的时候,我们经常需要根据自己的需求提取某些特定的字符串,因而我们需要给计算机提供匹配模板,而这个模板就是正则表达式。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
大部分时候我们见到的正则表达式都是以字符串的形式展现,如"w+\\.baidu\\.com",以至于我曾认为正则表达式就是一个字符串。但其实这只是为了方便人们使用,以Python语言的re模块为例: re.match("p","python") ,字符串"p"会在内部先转换为正则表达式对象(Pattern),然后再与字符串"python"进行匹配,需要注意的是正则表达式匹配的是整个字符串,而不是进行包含匹配,所以尽管"python"匹配到了第一个字符p,但由于后面还有字符,故匹配失败返回False。为了简化使用,大部分的需要用到正则表达式的函数(split、replace),都不需要程序员自己先去定义一个Pattern对象(Pattern对象自己也有许多方法,高效匹配),而只需将正则表达式字符串作为参数传递给函数就可以了,字符串转正则表达式对象的过程在函数内部完成。所以,