目录
正则表达式是什么
在实际开发过程中经常会有查找符合某些复杂规则的字符串的需要,比如:邮箱、图片地址、手机号码等,这时候想匹配或者查找符合某些规则的字符串就可以使用正则表达式了。简单说正则表达式就是记录文本规则的代码。用来匹配符号某种规则的字符串数据
匹配单个字符
- .(一个英文的句号)
- (匹配任意1个字符(除了\n) )
- [ ]
- 匹配[ ]中列举的字符
- 可以使用a-z表示a到z之间26个英文小写字母,大写字母和数字都可以这样写
- \d
- 匹配数字,即0-9
- \D
- 匹配非数字,即不是数字
- \s
- 匹配空白,即 空格,tab键
- \S
- 匹配非空白
- \w
- 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字
- \W
- 匹配特殊字符,即非字母、非数字、非汉字
匹配多个字符
- *
- 匹配前一个字符出现0次或者无限次,即可有可无
- +
- 匹配前一个字符出现1次或者无限次,即至少有1次
- ?
- 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
- {m}
- m为一个整型数字
- 匹配前一个字符出现m次
- {m,n}
- m、n为整型数字
- 匹配前一个字符出现从m到n次
匹配分组
- |
- 匹配左右任意一个表达式
- 可以理解为python中的or,只要有一个匹配就行
- (ab)
- ab为字符串,中间也可以插入正则表达式中的匹配字符
- 将括号中字符作为一个分组
\num
- 引用分组num匹配到的字符串
- num需要是一个整型数字
- 当正则表达式中不同位置的表达式有重复时,可以对其中一个表达式进行分组,而另一个表达式则可以使用此方法,整型数字表示为重复第几个正则表达式,从1开始计算
- 需要注意的是,在大部分语言中,如python,如果需要输入\,则需要使用\\表示转义。
(?P<name>)
- 分组起别名
- name是一个别名,只能由数字、字母、下划线组成,不能由数字开头
- 使用时还需要把进行起别名的正则表达式放进括号中
- (?P=name)
- 引用别名为name分组匹配到的字符串
- 与\num作用一样。
匹配开头和结尾
- ^
- 匹配字符串开头
- 放在字符串的左边
- $
- 匹配字符串结尾
- 放在字符串的右边
关于如果在python中使用正则表达式看下面链接
在python中使用正则表达式_HHYZBC的博客-CSDN博客https://blog.csdn.net/HHYZBC/article/details/124431584