正则表达式
时间:2022-06-19
本文章向大家介绍正则表达式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
语法 |
说明 |
---|---|
字符 | |
. |
匹配任意字符,除换行符"n”外 |
转义字符,使后面一个字符失去特殊意思 |
|
[...] |
字符集。^表示取反。 |
预定义字符集(可以写在字符集[...]中) | |
d |
数字:[0-9] |
D |
非数字:[^d] |
s |
空白字符:[<空格>trnfv] |
S |
非空白字符:[^s] |
w |
单词字符:[A-Za-z0-9_] |
W |
非单词字符:[^w] |
数量词(用在字符或(…)之后) 匹配前一个字符...次 | |
* |
0次或无限次 |
+ |
1次或无限次 |
? |
0次或1次 |
{m} |
m次 |
{m, n} |
m至n次 m n可以省略:若省略m,则匹配0至n次;若省略n,则匹配m至无限次 |
*?+???{m, n}? |
使*+?{m, n}变成非贪婪模式 |
边界匹配(不消耗待匹配字符串中的字符) | |
^ |
字符串开头或多行模式中每一行的开头 |
$ |
字符串末尾或多行模式中每一行的末尾 |
A |
仅匹配字符串开头 |
Z |
仅匹配字符串末尾 |
b |
匹配w和W之间 |
B |
[^b] |
逻辑、分组 | |
| |
任意匹配左右表达式。先左,若成功匹配则跳过匹配右边。若|不在()中,范围是整个正则表达式 |
(...) |
括号内的表达式作为分组,每一个括号的编号+1。可以后接数量词 |
(?P<name>...) |
除了原有的编号外,再指定一个额外的别名 |
<number> |
引用编号为<number>的分组匹配到的字符串 |
(?P=name) |
引用别名为<name>的分组匹配到的字符串 |
import re
# 将正则表达式编译成pattern对象
pattern = re.compile(r'hello')
# 使用pattern匹配文本,获得匹配结果,无法匹配时则返回None
match = pattern.match('hello world!')
if match:
# 使用match获得分组信息
print(match.group())
hello
同义简写:
import re
m = re.match(r'hello','hello world!')
print(m.group())
re.compile(strPattern[,flag]):
flag的可选值有:
- re.I 忽略大小写
- M 多行模式
- S 点任意匹配模式,改变'.'的行为
- L 使预定字符类w W b B s S 取决于当前区域设定
- U 使预定字符类w W b B s S d D 取决于unicode定义的字符属性
- X 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价的:
a = re.compile(r"""d + # the integral part
. # the decimal point
d * # some fractional digits""", re.X)
b = re.compile(r"d+.d*")
- 【Dev Club分享】iOS黑客技术大揭秘
- Linux终端:用cat命令查看不可见字符
- golang 函数定义及其接口实例
- 分享两种圣诞节雪花特效JS代码(网站下雪效果)
- React 移动 web 极致优化
- golang 高效字符串拼接
- Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程
- golang 使用时间通过md5生成token
- golang中对map操作类
- Nginx在线服务状态下平滑升级或新增模块的详细操作记录
- 【Dev Club分享】微信读书iOS性能优化
- [svn: E155004]svn update报database is locked错误的解决办法
- WordPress高亮插件:Crayon Syntax Highlighter加载优化
- 深入理解 ButterKnife,让你的程序学会写代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法