首页 > 其他分享 >20

20

时间:2022-10-25 14:12:00浏览次数:61  
标签:www aaa 匹配 res re print 20

今日内容总结

1.字符组

'''字符的默认的匹配顺序是从前往后'''
[0123456789]   从0到九
[0-9]          简写
[a-z]          字母a到z
[A-Z]          大写字母A到Z
[0-9a-z]       字符组默认或的关系

2.特殊符号

'''特殊符号默认也是挨个匹配'''
.        匹配除换行符意外的所有
\w       匹配数字 字母 下划线
\W       和上面相反
\d       匹配数字
^        匹配开头
$        匹配结尾
^a$      限制匹配的内容
a|b      匹配a或者b
()       分组功能 不影响匹配功能
[]       字符组 内部默认或的关系
[^]      取反操作 匹配除里面的所有

3.量词

'''正则表达式默认情况都是贪婪匹配(能拿多绝不拿少)'''
*       匹配一次或者多次    默认无穷次
+       匹配一次或者多次    默认无穷次
?       匹配零次或者一次    用于将贪婪匹配变成非贪婪
{n}     重复n次
{n,}    重复n次或者更多次
{n,m}   重复n到m次
# 量词要和结合表达式一起使用 不能单独出现 并且只影响左边的第一个表达式

4.贪婪匹配与非贪婪匹配

'''只要在量词后加上?就可以转换成非贪婪匹配'''
eg:<script>alert(123)</script>
使用贪婪匹配

image

使用非贪婪匹配

image

5.转义符

'''由于斜杠和字符会有特殊含义'''
eg:
	\n 表达换行符
    \\n 则不会有什么意义
    要想打出\\n    则需要\\\\n
    在python中使用r""可以作为转义符

6.正则表达式实战建议

#使用的方面很多
1.校验身份证的输入是否正确
2.编写校验邮箱正则
3.编写校验用户手机号的正则
4.编写教养用户qq号的正则
but 许多正则是已经有的 我们可以取前人写好了的

7.re模块

#在python中使用re模块
import re
'''
常见的操作
res = re.findall('a','jason apple aaa')
print(res) 查找符合要求的字符组 返回的结果是一个列表
res = re.finditer('a','jason apple aaa')
print(res) 也是查找符合结果的字符组 但返回的是一个迭代器对象
res = re.search('a','jason apple aaa')
print(res) 所打印的结果不可读
print(res.group()) 匹配到第一个符合条件的就结束
res = re.match('a','jason apple aaa')
print(res)    None
print(res.group())    如果开头不满足也就不会有后后续了
'''
#当我们需要频繁使用可以将其组成模板
obj = re.compile('\d{3}')
res1 = obj.findall('ssadsadad')
res2 = obj.findall('sahdsja')
print(res1,res2)
就可以直接使用
#分割操作
res = re.split('[a,b]','abcd')
先按照a进行切割 结果是:['','bcd']
再按照b进行切割   ['','','cd']
#代替操作
res = re.sub('\d','h','snajdsn2s332',1)   # 将数字替换成h 替换的数量为1个
如果没有添加次数参数  返回的则是一个元组
格式:('替换后的格式',被替换的数量)

8.re模块补充说明

#1.分组优先
	res = re.findall('www.(bbb|aaa).com','www.aaa.com')
    print(res)    #['aaa']
    小括号内被定义为一个分组 会优先展示分组中的内容
    使用?:可以取消分组的优先
     res = re.findall('www.(?:bbb|aaa).com','www.aaa.com')
    print(res)    #['www.aaa.com']
    使用group()也可以取消分组优先
#2.分组别名
	res = re.search('www.(?P<别名>adsad|sadasd).com','www.sadasd.com')
    print(res.group())   # www.sadasd.com
	print(res.group('别名'))  # sadasd
    print(res.group(1))   # sadasd
    不建议使用索引取值的方式来 会混乱

9.网络爬虫

#正则表达式的最大作用就是可以对数据进行一个筛选 而爬虫需要的就是对数据的筛选

标签:www,aaa,匹配,res,re,print,20
From: https://www.cnblogs.com/xiaochenxiangchangpang/p/16824655.html

相关文章

  • [EZOI 2016]源氏的数学课
    题目链接:​​传送门​​求带单点修改把式子拆开求维护一个区间和和一个区间就好了/***@Date:2019-07-11T15:55:17+08:00*@Email:2743292121@qqssssssssssssssss......
  • Luogu P3833 [SHOI2012]魔法树
    题目链接:​​传送门​​树剖板子区间加,子树查询树剖里查询的时候x和y地方小于号写反T了一会a,b写成dfn[a],dfn[b]竟然还有50分又WA了一会也就交了二十遍。#include<io......
  • BZOJ 5334: [Tjoi2018]数学计算
    题目链接:​​传送门​​一眼看过去很简单的样子根节点维护线段树乘积每个叶节点对应每一个操作如果是2操作则该叶节点为1否则就是就是要乘的m/***@Date:2019-03-27T......
  • COGS 2632. [HZOI 2016] 数列操作d
    题目链接:​​传送门​​区间加等差数列网上没怎么见有解释的把等差数列看成一个三角形mid从中间切开后左儿子加的还是一个三角形右儿子加的是一个梯形其实也不能说是......
  • Luogu P3980 [NOI2008]志愿者招募
    题目链接:​​传送门​​别人家的建图~~~~好神奇很容易想到志愿者的起始时间和终止时间连边,费用就是他的费用但是每个点还有一个人数限制必须要有那么多个人也就是那么......
  • Luogu P2221 [HAOI2012]高速公路
    题目链接:​​传送门​​维护路径期望值,带区间修改看每条路径会被统计多少次贡献非常不显然是方案数就是上面的是分子下面的是分母现在要把上面的展开看怎么维护直接......
  • Luogu P2150 [NOI2015]寿司晚宴
    题目链接:​​传送门​​太难了太难了题意就是问有多少种分案把一个到的排列分配为两组并使组间元素两两互质首先我们只需要考虑根号内的质因子对答案的影响,因为根号外的因......
  • Luogu P2515 [HAOI2010]软件安装
    题目链接:​​传送门​​很明显,如果图中有一个环那么这个环上的点必须都要选那我们一开始就直接缩点因为每个物品有价值有重量还有有重量限制所以是很明显的树上背包我......
  • Luogu P4421 [COCI2017-2018#1] Lozinke
    题目链接:​​传送门​​一开始直接AC自动机每个串暴力跳fail显然会T,44分#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<complex>#i......
  • Luogu P3182 [HAOI2016]放棋子
    题目链接:​​传送门​​题目说了每行有一个障碍两个障碍不在同一行也不在同一列那障碍放哪里就没关系了矩阵都不用输入或者这样理解:交换矩阵的某两行对答案是没有影响......