html符号与正则表达式
特殊符号
空格: ;
>:>;
<:<;
&:&;
¥:¥;
版权:©;
注册:®;
常用标签
链接标签
<a href="https://www.sogo.com">链接标签</a>
href参数后面写网址用户点击即可跳转到该网页
链接标签
<img src="http://www.bubuko.com/111.png" >图片标签
src参数后面写图片的地址可以是网络上的也可以是本地的
链接标签
<div>页面布局标签</div>
是所有网页中出现频率最高的标签内部可以无限制的嵌套任意标签
链接标签
<span>页面文本标签</span>
是所有网页中涉及到文字可能会出现的标签 频率并不是太高
列表标签
在网页上看似有规则排列的横向或者竖向的内容基本都是用列表标签完成的
<ul> <li>001</li> <li>002</li> <li>003</li> <li>004</li> <li>005</li> </ul>
表格标签
涉及到多条相同格式数据展示的时候可以考虑使用表格标签(类似于excel)
<table> <thead> <!--书写表头数据(字段名)--> <tr> <!--一个tr就是一行--> <th>序号</th> <!--书写一个个字段名--> <th>姓名</th> <th>年龄</th> </tr> </thead> <tbody> <!--书写表单数据(真实数据)--> <tr> <td>1</td> <!--书写一个个真实数据--> <td>hzh</td> <td>9999</td> </tr> <tr> <td>2</td> <td>xxl</td> <td>27</td> </tr> </tbody> </table>
表单标签
涉及到用户数据的获取一般都需要使用表单标签
input标签
type参数
text:普通文本
password:密文展示
email:邮箱格式
date:日期格式
radio:单选
checkbox:多选
file:文件上传
submit:提交按钮
reset:重置按钮
button:普通按钮
select标签
option:子标签
textarea标签
用来获取大段文本
标签特性
<a id=‘‘ class=‘‘></a>上述id、class等都称之为a标签的属性
标签两大核心属性
id:单独查找某个人,类似于标签的身份证号码,用于唯一标识标签,在同一个html文档中id不能重复
class:批量查找一群,类似于标签的种群(类别)用于区分不同的类,在用一个html文档中class值可以重复表示属于同一个类别
例如:
<p class=‘c1‘></p> <a class=‘c1‘></a> <div class=‘c1‘></div>
一个标签可以含有多个class值<span class=‘c1 c2 c3‘></span>
标签还可以自定义任意的属性<a username=‘jason‘ pwd=123></a>
标签之间的关系描述
<div>只要是div内部的标签都可以称之为是div的后代 <a>上一级div的儿子</a> <p>上一级div的儿 <span>上一级p的儿上上一级div的孙子</span> </p> <div>上一级div的儿 <a>上一级div的儿子上上一级div的孙子</a> </div> <span>上一级div的儿</span> </div>
正则表达式
纯python代码校验手机号
# 1.获取用户手机号 phone = input(‘phone num>>>:‘).strip() # 2.先判断长度是否是11位 if len(phone) == 11: # 3.再判断是否是纯数字 if phone.isdigit(): # 4.最后判断开头是否是13 14 15 18 if phone.startswith(‘13‘) or phone.startswith(‘14‘) or phone.startswith(‘15‘) or phone.startswith(‘18‘): print(‘是一个合法的手机号‘) else: print(‘手机号格式错误‘) else: print(‘手机号必须是纯数字‘) else: print(‘手机号必须是11位‘)
正则表达式校验手机号
import re phone_number = input(‘please input your phone number : ‘) if re.match(‘^(13|14|15|18)[0-9]{9}$‘,phone_number): print(‘是合法的手机号码‘) else: print(‘不是合法的手机号码‘)
使用正则表达式可以极大的简化数据筛选和校验的步骤
有时候匹配的内容很精确的情况下可以直接写具体内容
例如:
待匹配的文本内容 jasonkevinjasontonyegonjack
要匹配的文本 jason
正则表达式直接写jason即可
正则表达式之字符组
字符组在匹配内容的时候是单个单个字符挨个匹配
[0123456789]:匹配0到9之间的任意一个数字包括首尾
[0-9]:简写匹配0到9之间的任意一个数字包括首尾
[a-z]:匹配小写字母a到z之间的任意一个字母包括首尾
[A-Z]:匹配大写字母A到Z之间的任意一个字母包括首尾
[0-9a-zA-Z]:匹配数字或者小写字母或者大写字母
正则表达式之符号
符号在匹配内容的时候是单个单个字符挨个匹配
.:匹配除换行符以外的任意字符
\d:匹配数字
^:匹配字符串的开始
$:匹配字符串的结尾
a|b:匹配字符a或字符b
():给正则表达式分组 本身没有任何意义
[...]:匹配字符组中的字符
[^...]:匹配除了字符组中字符的所有字符(取反)
正则表达式之量词
跟在正则表达式的后面可以一次性匹配多个字符,量词必须跟在正则表达式后面不能单独出现使用
*:重复零次或更多次
+:重复一次或更多次
?:重复零次或一次
{n}:重复n次
{n,}:重复n次或更多次
{n,m} :重复n到m次
正则表达式默认情况下都是贪婪匹配:尽可能多的匹配
贪婪匹配与非贪婪匹配
<.*>匹配<script>123</script>结果<script>123</script>
右侧尽可能多的匹配大括号最后一个才停止
将贪婪匹配变成非贪婪匹配只需要在量词后面加一个问号即可
<.*?>匹配<script>123</script>结果<script>和</script>
右侧遇到一个大括号就停止匹配
取消转义
\n:匹配的是换行符
\\n:匹配的是\n
\\\\n:匹配的是\\n
re模块
如果想在python代码中使用正则表达式需要借助于内置模块re
import re text = ‘<script>123</script>‘ res = re.findall(‘<.*?>‘,text) print(res)
html符号与正则表达式
原文:https://www.cnblogs.com/hzh1678053026/p/15270536.html