正则表达式匹配规则整理

很多时候我们需要匹配用户输入的是否符合一定的要求(比如邮箱匹配,电话号码匹配),或者我们需要按照要求筛选出具有一定要求的文件(比如从多种文件中找出某一天的图片文件),这个时候就需要我们人为定义中规范,这种规范可以匹配符合要求的字符串,也就是我们今天要说的正则表达式。

本文使用python的re包进行正则匹配

import re
  1. 直接匹配
re.match('hello','hello').group() # match 前一个引号内为规则,后一个引号内为待匹配对象

输出为:

'hello'

但是这个也有弊端

re.match('hello','hello,world').group()

输出仍然为:

'hello'

也就是只匹配到前一个字符串结束,后面并不会管他
当然匹配不到的情况如下:

re.match("hello","holle,world").group()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-7f1d9f73b36d> in <module>
----> 1 re.match("hello","holle,world").group()

AttributeError: 'NoneType' object has no attribute 'group'

  1. 单字符匹配规则
字符 功能
. 匹配任意一个字符
[ ] 匹配[]中列举的字符
\d 匹配数字,即0-9
\D 匹配非数字
\s 匹配空格,tab键
\S 匹配非空格,tab键
\w 匹配单词字符,即0-9, a-z, A-Z, _
\W 匹配非单词字符
  1. 匹配多个字符
字符 功能
* 匹配前一个字符出现零次或者无限次,即可有可无
+ 匹配前一个字符出现一次或者无限次,即至少一次
匹配前一个字符出现一个或者零次,即最多一次
{m} 匹配前一个字符出现m次
{m,n} 匹配前一个字符出现m-n次
  1. 匹配开头和结尾
符号 功能
^ 匹配开头
$ 匹配结尾
  1. 匹配分组
符号 功能
| 匹配左右任意一个表达式
( ) 将括号内的字符作为一个分组

猜你喜欢

转载自blog.csdn.net/qq_41459262/article/details/107490474