python -正则表达式(常用源字符)

     正则表达式的概念就不啰嗦了,此笔记用来摘录一些常用的正则表达式的应用

1.点号.

一个点号可以代替除了换行符以外的任何一个字符,包括但不限于英文字母,数字,汉字,英文标点符号和中文标点符号.

抠重点,用号代替的是任何一个字符

示例:

你好啊

你好好啊

你好好好好啊

如果要匹配"你好好啊"  用点号表达式,则需要表示成:"你..啊"

 

2.星号 "*"

一个星号可以表示它前面的一个子表达式(普通字符,另一个或几个正则表达式符号) 0次到无限次.

示例:

你笑起来真好看

你笑起来真好看看看

你笑起来真好看看看看看

匹配:"你笑起来真好看*"    这样就能把上面的三句全部匹配出来

 

思考:那么如果星号前面是点号呢    如上:用表达式   你.*看

 

3.问号?

  问号表示它前面的子表达式0次或者1次.

例如:

笑起来.

笑起来哈.

在汉字"来"和中文句号之间有0个或者1个哈字, 表达式 "笑起来哈?." 能够匹配以上两种

问号最大的用处是与点号和星号配合起来使用,构成".*?".通过正则表达式来提取信息的时候,用到最多的也是这个组合.

下面的所有字符串:

你笑起来活动啊哈

你十多个覅好哦工哈

你dhglajwogh哈

都可以用表示表示式 如.*?哈

 

4.反斜杆 \

反斜杠在正则表达式里面不能单独使用,需要和其他的字符配合使用来把特殊符号变成普通符号,把普通符号变成特殊符号.因为在正则表达式中很多符号用来作为源字符用了(比如星号,点号),那么如果需要配置这些字符本身怎么办?

例如有下面一段字符:

我的密码是*123456*不包括外层星号

那么怎么才能匹配出来密码部分数字呢?   如果用表达式 " 我的密码是*.**不包括外层星号"来表示,就会乱的,因此需要用转义后的字符来处理,如:

 " 我的密码是\*.*\*不包括外层星号"    \*用来表示*号字符

其他符号也类似,常用的转义字符如下:

 

转义字符  字符意义
\n 换行符
\t   制表符
\\ 普通的反斜杠
\' 单引号
\" 双引号
\d 数字

 

5.数字\d 

这个比较好理解,\d 代表任意一个数字0-9,要匹配多个数字的话就要用多个\d

例如:

我的电话是1688结尾的 

我的电话是8899结尾的

 ---   表达式:我的电话是\d\d\d\d结尾的

当然也可以结合*号来使用:我的电话是\d*结尾的

 

6.小括号()

 小括号可以把括号里面的内容提取出来.

 前面讲到的符号仅仅能让正则表达式表示一串字符串.但是字符串如果要从一段字符串中提取出一部分的内容应该怎么办?这个时候就需要小括号了

例如:

我的电话是:13612345678请保存.

只需要提取其中的电话号码就可以这么表示---   :(.*?)请

这样提取出来的结果就是电话号码

 

 

小结:助记

点号--匹配任意一个字符

星号--匹配0个或多个字符

问号--表示其前面的表达式匹配0次或一次

\d--匹配任意数字

括号--表示要提取的内容

.*?  -- 常用匹配中间任意字符

画面:  盏灯在繁空下感受到学薄,恶的声音就像雨天水人衣服上一样普遍,小年纪的佬有钱了想取什么就取什么;

点心常常是那些嘘寒暖的人准备的.

 

posted @ 2021-05-08 16:06  另一个起点  阅读(416)  评论(0编辑  收藏  举报