正则表达式
约 698 个字 预计阅读时间 2 分钟
定义
一种特殊的字符序列,帮助你方便地检查一个字符串是否和某个模式相匹配
使用re
来匹配正则表达式
re
模块提供了一组函数,允许在字符串中进行,模式匹配,搜索和替换操作
re
模块使得python代码拥有完整的正则表达式功能
正则表达式
正则表达式的模式包括一下内容
- 字面值字符,例如字母数字和空格,可以直接匹配他们自身
- 特殊字符,例
. * + ?
具有特殊的含义和功能 - 字符类:用方括号
[]
包围的字符集合,用于匹配方括号内的任意一个字符 - 元字符,例如
\d,\w,\s
等,用于匹配特定类型的字符,例如数字,字母,空白字符 - 边界符号:例如
^,$,\b,\B
等,用于匹配字符串的开头结尾或者单词边界
简单上手
Text Only | |
---|---|
^
为匹配输入字符串的开始位置[0-9]+
匹配多个数字,[0-9]
匹配单个数字,+
匹配一个或者多个abc$
匹配字母abc并且以abc结尾,$
为匹配输入字符串的结束位置
Text Only | |
---|---|
还是一样
1. ^
开始匹配字符串的开头
2. [a-zA-Z0-9_-]
表示字符集,包含小写字母,大写字母,数字,下划线和连接字符-
3. {3,15}
表示前面的字符集最少出现3次最大出现15次,从而限制了用户名的长度在3-15个字符之间
正则表达式元字符和特性
字符匹配
- 普通字符:普通字符按照字面意义进行匹配,例如匹配字母"a"将匹配到文本的"a"字符
- 元字符:元字符除了具有特殊的含义,例如
\d
匹配任意数字字符,\w
匹配任意字母数字字符,.
匹配任意字符等
量词
*
匹配前面模式0次或者多次+
匹配前面模式1次或者多次?
匹配前面模式0次或者1次{n}
匹配前面的模式恰好n次{n,}
匹配前面的模式至少n次{n,m}
:匹配前面的模式至少n次且不超过m次
字符类
[]
匹配方括号内的任意一个字符[^]
匹配除了括号内的字符以外的任意一个字符
边界匹配
^
:匹配字符串的开头$
匹配字符串的结尾\b
匹配单词边界\B
匹配非单词边界
分组和捕获
( )
:用于分组和捕获子表达式。(?: )
:用于分组但不捕获子表达式。
特殊字符
\
:转义字符,用于匹配特殊字符本身。.
:匹配任意字符(除了换行符)。|
:用于指定多个模式的选择。