0基础学python(81)

正则表达式又叫"规则表达式"(Regular Expression),简称RE,是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,简单来说它就是记录文本规则的代码,再通过这种规则判断和筛选字符串

多种程序设计语言支持正则表达式,Python也不例外。

python 过滤英文字母_python 过滤英文字母

多种编程语言



今天来学习一些使用正则表达式需要掌握的一些知识。

1、元字符

指的是在正则表达式中具有特殊意义的专用字符,将一些常用的元字符列在下表中,详见下图:




python 过滤英文字母_python 过滤英文字母_02

常用的元字符



2、行定位符

用来定位行(háng)的开始和结束的元字符,用"^"来表示行的开始,用"$"来表示行的结尾。

3、限定符

用来限制匹配数量的字符,Python中常用的限定符详见下图:




python 过滤英文字母_c++ 正则表达式_03

常用的限定符



4、字符类

使用中括号"[ ]"来定义一个字符集合,然后来匹配这个集合当中的字符。

例如:"[aeiou]"可以匹配任何一个英文元音字母;

"[.?!,]"可以匹配标点符号("."、"?"、"!"、",");

"[0-9]"可以匹配所有的数字(等同于元字符d);

"[A-Za-z]"可以匹配所有英文字母;

"[一-龥]"可以匹配所有汉字,连续匹配多个汉字则使用"[一-龥]+"。

以上这些都是现成的可以拿去用的字符类正则表达式。

5、排除字符

排除字符是字符类的反向集合,用来定义不匹配的字符集合,在中括号内加一个向上的尖括号"[^]"来定义,用来表示排除,比如"[^0-9]"就表示排除所有的数字。

6、选择字符

选择字符就是定义多个规则字符来匹配字符串,类似规则A或规则B或规则C或规则D这种格式,定义时就是:"(A│B│C│D)"。

7、转义字符

转义字符使用""来表示,它的作用是把特殊的字符(如元字符、限定符等)转换成为一般的原意字符。

8、分组

小括号"()"在正则表达式中的第一个作用是可以改变限定符的作用范围。例如:表达式"(do│eat)ing"匹配单词doing和eating,但是取掉小括号变成"do│eating",就成了匹配do和eating。

小括号"()"在正则表达式中的第二个作用就是分组,将表达式分成不同的子表达式。

9、在Python中使用正则表达式语法

在Python中使用正则表达式的时候,是将其作为模式字符串使用的。比如,将匹配不是数字的一个字符的正则表达式表示为模式字符串,它的代码如下:

'[^0-9]'

但是使用带""的元字符的正则表达式转换为模式字符串的时候,因为这里的反斜杠""带有特殊意义,所以不能直接使用引号作为定界符把表达式引起来,而是需要在""前面再使用""进行转义。

比如代码:

'bcw*b'

(匹配以字母c为开头的单词)

这样写就是错误的,正确的写法是:

'bcw*b'

但是这样又会造成可能有的模式字符串中会存在大量的特殊字符和反斜杠""。

于是Python提供一个办法,就是在模式字符串的前面加上小写"r"或者大写"R",并称之为"原生字符串",上面的例子写为原生字符串就是:

r'bcw*b'

以上就是今天的内容,说句实话今天的学习内容非常的枯燥,我打字的时候甚至都快睡着了。但是这些都是正则表达式的基础知识,不理解吃透,恐怕以后还会掉坑里,我还是仔仔细细多学几遍,弄懂了再说。




python 过滤英文字母_c++ 正则表达式_04