首页 / PYTHON / python 基础(十四)
python 基础(十四)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 基础(十四),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3286字,纯文字阅读大概需要5分钟。
内容图文
![python 基础(十四)](/upload/InfoBanner/zyjiaocheng/857/8d4c6a96f8c24f7dabac36c4e96edbee.jpg)
正则表达式
概念: 正则匹配就是一个模糊的匹配 只要符合我的匹配规则 就会认为是正确的数据(精确的匹配)
1.[] #代表原子表把想要匹配的内容写入原子表中 匹配包含的任意一位字符
[a] #匹配小写字母a
[ab] #匹配小写字母a或者b
[aAbB] #匹配字母a或b
[195] #匹配任意一位数字
[a-z] #匹配任意一位小写字母
2.^ #在原子表外称之为以...作为开头 放在原子表内叫取反 相当于 \A
^[abc] #匹配以a/b/c字符作为开头
[^abc] #匹配任意一位小写字母a/b/c以外的字符
^abc #匹配以小写字母abc开头的内容
^[0-9]
^[a-zA-Z0-9]
3.$ #以...作为结尾 相当于 \Z
^[1][3-9][0-9]{9}$ ^和$通常是组合使用 真正的限制匹配数据的正确性
?
4.{m} #控制匹配前面数量的m次 不能单独使用 和普通的内容一起使用或者和原子表
#匹配3个a的操作
[a][a][a]
aaa
a{3}
[a]{3}
{4} #错误写法
[a-zA-Z]{3}
5.{m,n} #控制匹配前面数量的m-n次 不能单独使用 和普通的内容一起使用或者和原子表
#匹配qq号码
5-11
^[1-9][0-9]{4,10}$
010-778192
101-621331
[01]{3}\-[0-9]{6}
6.{m,} #表示匹配前面数量至少m次
[a-z]{3,}
#1 匹配1-99的正则
[1-9][0-9]{0,1}
#2 匹配任意一位正负整数和小数 ?
[\-]{0,1}[1-9]
?
7.? #可有可无 匹配前面的正则表达式的 0次或者一次 类似于 {0,1} 或指明一个非贪婪的限定符
[1-9][0-9]?
[\-]?[1-9]
?
8. . #匹配换行符\n以外的任意一位字符
?
9. * #匹配前面表达式的任意次 相等于{0,}
?
10. .* #匹配除换行符以外的任意字符任意次 贪婪模式
?
11. .*? #匹配除换行符以外的任意字符任意次 非贪婪模式
?
12. + #匹配前面表达式的至少1次 相等于{1,}
?
13. .+ #匹配除换行符以外的任意字符至少1次 贪婪模式
?
14. .+? #匹配除换行符以外的任意字符至少次 非贪婪模式
?
15. () #1.代表一个单元 2.子存储
?
16. | #表示或
#匹配手机号码或者qq号码
(^[1-9][0-9]{4,10}$)|(^[1][3-9][0-9]{9}$)?
正则函数
使用正则函数需要导入内置的 re模块
import re
修正符
-
re.I 忽略大小写
-
re.M 多行模式 改变^和$的作用
-
re.S 改变.的行为 可以匹配换行符
特殊意义的字符
\d 相当于 [0-9]
\D 相当于 [^0-9]
\w 相当于 [a-zA-Z0-9_]
\W 相当于[^a-zA-Z0-9_]
\s 匹配空白字符
\S 匹配非空白字符
(1) re.match(pattern,string,flags) 匹配一次 必须从头开始
pattern:正则表达式
string: 要匹配的字符串的内容
flags: 修正符
返回结果:
匹配成功 返回对象
匹配失败 返回None
注意:
match必须从第一位开始匹配 如果第一位没有符合的 则匹配失败 类似于在正则前方添加^
只匹配一次
取值
-
group() 将值取出
group([index]) 索引可有可无 如果正则内没有存在括号 则不需要传index
-
groups() 正则内括号的值 以元组形式进行返回
(2) re.search(pattern,string,flags) 匹配一次包含就可以
pattern:正则表达式
string: 要匹配的字符串的内容
flags: 修正符
返回结果:
匹配成功 返回对象
匹配失败 返回None
只匹配一次
和match的区别 只要字符串中包含就可以
(3) re.findall(pattern,string,flags) 匹配多次
pattern:正则表达式
string: 要匹配的字符串的内容
flags: 修正符
返回结果:
匹配成功返回装有数据的列表
匹配失败返回空列表
(4) re.finditer() 将查询结果变成迭代器进行返回 配合next方法进行操作
next(re.finditer())
(5) re.sub/re.subn 正则替换 返回匹配的次数/不返回匹配的次数
sub(pattern, repl, string, count=0, flags=0)
subn(pattern, repl, string, count=0, flags=0)?
(6) re.split 正则拆分
split(pattern, string, maxsplit=0, flags=0):?
(7) re.compile(pattern,flags) 编译成正则表达式 可以多次使用
将正则和函数分开使用 提高执行效率 正则表达式 可以多次使用
使用方法
pattern = re.compile("pattern",flags)
pattern.函数名(匹配的字符串)
修正符
re.I(re.IGNORECASE)
re.S(re.DOTALL)
re.M(re.MULTILINE)
内容总结
以上是互联网集市为您收集整理的python 基础(十四)全部内容,希望文章能够帮你解决python 基础(十四)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。