正则表达式

正则表达式:

  正则表达式(Regular Expression,常简写为regex或者RE),又称规则表达式,它不是某个编程语言所特有的,是计算机科学的一个概念,通常被用来检索和替换符合某些规则的文本。目前,正则表达式已经在各种计算机语言(如Java、 C#和Python等)中得到了广泛的应用和发展。
      在Python中,可以使用正则表达式进行与字符串相关的一些匹配,正则表达式是一种用来匹配字符串的强有力武器,它只和字符串打交道,设计思想是用一种描述行的语言来给字符串定义一个规则,凡是符合规则的字符串就认为它“匹配”,否则就不匹配。即从大段的文字中找到符合规则的内容!!!

字符组:

[  ] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的

[0-9]  匹配数字0-9

[a-z]    匹配a到z的小写字母

[A-Z]  匹配A到Z的大写字母

[a-zA-Z0-9] 匹配大小写字母+数字
[a-zA-Z0-9_] 匹配数字字母下滑线

元字符:

量词:

{n}表示 这个量词之前的字符出现n次
{n,} 表示这个量词之前的字符至少出现n次
{n,m} 表示这个量词之前的字符出现n-m次
? 表示匹配量词之前的字符出现 0次 或者 1次 表示可有可无
+ 表示匹配量词之前的字符出现 1次 或者 多次
* 表示匹配量词之前的字符出现 0次 或者 多次

. ^ $

正则表达

待匹配的字符

匹配到的结果

说明

结.

结果结束结缘

结果结束结缘

匹配所有”海.”的字符

^结.

结果结束结缘

结果

只从开头匹配”海.”匹配到了一个就会停

结.$

结果结束结缘

结缘

只匹配结尾的”海.”,同上面的相反

* + ? { }

正则表达

待匹配的字符

匹配到的结果

说明

结.?

结果和结束和结缘

结果

结束

结缘

?表示重复零次或一次,即只匹配"结"后面一个任意字符

结.*

结果和结束和结缘

结果和结束和结缘

*表示重复零次或多次,即匹配"结"后面0或多个任意字符

结.+

结果和结束和结缘

结果和结束和结缘

+表示重复一次或多次,即只匹配"结"后面1个或多个任意字符

结.{1,2}

结果和结束和结缘

结果和

结束和

结缘

{1,2}匹配1到2次任意字符

注意:前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配

正则

待匹配字符

匹配结果

说明

结.*?

结果和结束和结缘

惰性匹配

正则表达式的匹配特点 :

贪婪匹配,它会在允许的范围内取最长的结果
非贪婪模式/惰性匹配 : 在量词的后面加上?
 .*?x 匹配任意非换行符字符任意长度 直到遇到x就停止

2019年11月18日

原文地址:https://www.cnblogs.com/yjtxin/p/11883147.html