正则表达式
Posted jokei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
# 正则表达式
- 是一个计算机科学的概念
- 用于使用单个字符串来描述,匹配符合某个规则的字符串
- 常常用来检索,替换某些模式的文本
## 正则的写法
- .(点号): 表示任意一个字符,除了 ,比如查找所有的字符 .
- []: 匹配中括号中列举的任意字符,比如[L,Y,0],查找字符串中包含这三个字符的字符串
- d: 任意一个数字
- D: 除了数字都可以
- s: 表示空格,tab键
- S: 除了空白符号
- w: 单词字符,就是a-z,A-Z,0-9,_
- W: 除了a-z,A-Z,0-9,_
- *: 表示前面内容重复零次或者多次,
- +: 表示前面内容至少出现一次
- ?: 前面才出现的内容零次或者一次
- {m,n}: 允许前面内容出现最少m次,最多n次
- ^: 匹配字符串的开始
- $: 匹配字符串的结尾
- : 匹配单词的边界
- (): 对正则表达式内容进行分组,从第一个括号开始,编号逐渐增大
- 例子:
- 验证一个数字: ^d$
- 必须有一个数字,最少一个: ^d+$
- 只能出现数字,且位数为5-10位: ^d{5,10}$
- 注册者输入年龄,要求16岁以上,99岁以下: ^[16,99]$
- 只能输入英文字符和数字: ^[A-Za-z0-9]$
- 验证qq号码: [0-9]{5,12}
- A: 只匹配字符串开头, Aabcd,则abcd
- : 仅匹配字符串结尾, abcd,则abcd
- |: 左右任意一个
- (?P<name>...): 分组,除了原本的编号再制定一个别名, (?P<id>123445){2}
- (?P=name): 引用分组
案例:
import re
# 查找数字
p = re.compile(r‘d+‘)
# 在字符串"123jasd123787wsejhashd992"中进行查找,按照规则p制定的正则表达式进行查找
# m = p.match("123jasd123787wsejhashd992")
# # 从第一个开始为数字的话就符合
# m = p.match("asdjh123jahsdh777asdh222")
# 参数5,10表示在字符串中查找的范围即index
m = p.match("asdjh123jahsdh777asdh222", 5, 10)
print(m)
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章