网页常见知识和正则使用
网页知识与正则应用
-
特殊符号
-
常用标签
-
列表标签
-
表格标签
-
表单标签
-
正则表达式
特殊符号
> :大于号
< :小于号
&nbasp:空格符
&:&符号
¥:¥符号
®:®注册符号
©:©版权符号
常用标签
a链接标签
<a href=网络地址> </a>
用于显示网络链接,跳转网页用
img图片标签
<imge src=图片地址> </imge>
用于展示图片,src后面加图片地址,也可以是网络图片地址
div页面布局标签
<div>...<div>
是所有网页中出现频率最高的标签 内部可以无限制的嵌套任意标签
span页面标签文件
<span>...</span>
是所有网页中涉及到文字可能会出现的标签 频率并不是太高
列表标签
类似于execl表
<ul> <li>001</li> <li>002</li> <li>003</li> </ul>
表格标签
<table border=1> <thead> <tr> <th>序号</th> <!--书写一个个字段名--> <th>姓名</th> <th>年龄</th> </tr> <!--一个tr就是一行--> </thead> <!--书写表头数据(字段名)--> <tbody> <tr> <td>1</td> <!--书写一个个真实数据--> <td>jason</td> <td>123</td> </tr> </tbody> <!--书写表单数据(真实数据)--> </table>
表单标签
input标签
用于网页输入信息,获取用户相关数据
input的type参数:
text 普通文本
password 密文展示
email 邮箱格式
date 日期格式
radio 单选
checkbox 多选
file 文件
submit 提交按钮
reset 重置按钮
button 普通按钮
<!DOCTYPE html> <html> <body> <form action="/demo/demo_form.asp"> First name:<br> <input type="text"> <br> password:<br> <input type="password"> <br> <input type="submit" value="提交"> <br> <input type="reset" value="重置"> <br> <input type="button" value="按钮"> <br> <input type="email" value="email"> <br> <input type="date"> <br>性别: <input type="radio">男 <input type="radio">女 <br> 喜欢 <input type="checkbox">男 <input type="checkbox">女 <br> <input type="file"> <br> </form> </body> </html>
select标签
列表选择标签
option子标签
<!DOCTYPE html> <html> <body> <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="opel">Opel</option> <option value="audi">Audi</option> </select> </body> </html>
textarea标签
获取大文本标签,可以输入文字
<textarea rows="12" cols="20"/>
标签特性
由于在同一页面上有许多相同标签,为了区分标签,给标定义了两个了个特性
<a id=' ' class=' '></a>
上诉id、class等都称为a标签的属性
标签两大核心属性
1.id
可以单独查找某个人,类似于标签的身份证号码 用于唯一标识标签,在同一个html文档中id不能重复
2.class
可以批量查找一群人,类似于标签的种群(类别) 用于区分不同的类,在用一个html文档中class值可以重复 表示属于同一个类别
一个标签可以含有多个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>
正则表达式
'''通过特殊符号的组合来筛选出符合条件的文本理解'''
# 正则表达式一门独立的学科,在其他地方都可以单独使用
题目:获得手机号要求,长度11位,纯数字,开头为13、14、15、18四选一
使用python代码解决该问题会非常复杂所以我们引入了正则
eg:
import re
phone=input('请输入你的密码:')
# 判断是否符合要求
if re.match('^(13|14|15|18)[0-9]{9}$',phone):
print('是合法的手机号码')
else:
print('不是合法的手机号码')
由此可得出结论,使用正则表达式可以极大的简化数据筛选和校验的步骤
'''
匹配的内容精确时可以直接使用具体内容
'''
eg:
待匹配的文本内容 aaaaaaa111aaaaaa
要匹配的文本 111
正则表达式输入111即可
正则在线工具:http://tool.chinaz.com/regex/
正则表达式之字符组
# 字符组在匹配内容的时候是单个单个字符挨个匹配
[0123456789] 匹配0到9之间的任意一个数字包括首尾
[0-9] 简写:匹配0到9之间的任意一个数字包括首尾
[a-z] 匹配小写字母a到z之间的任意一个字母包括首尾
[A-Z] 匹配大写字母A到Z之间的任意一个字母包括首尾
[0-9a-zA-Z] 匹配数字或者小写字母或者大写字母
例子:
import re
phone='123434dvwqefew2342441'
t1=re.findall('[0123456789]',phone)
print(t1)
t1=re.findall('[0-9]',phone)
print(t1)
t1=re.findall('[a-z]',phone)
print(t1)
t1=re.findall('[A-Z]',phone)
print(t1)
t1=re.findall('[0-9a-zA-Z]',phone)
print(t1)
^ 匹配开头
$ 匹配末尾
() 对数据进行分组,指定查询内容
. 任意字符不包括换行符
\d匹配数字
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中的所有字符
'''量词必须跟在正则表达式后面 不能单独出现使用'''
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
"""正则表达式默认情况下都是贪婪匹配>>>:尽可能多的匹配"""
练习
正则 待匹配的文本 结果
海. 海燕海娇海东 海燕、海娇、海东
^海. 海燕海娇海东 海燕
海.$ 海燕海娇海东 海东
海.* 海燕海娇海东 海燕海娇海东
海.? 海燕海娇海东 海燕、海娇、海东
海.+ 海燕海娇海东 海燕海娇海东
海.{1,2} 海燕和海娇和海东 海燕和、海娇和、海东
"""贪婪匹配与非贪婪匹配"""
正则 待匹配的文本 结果
<.*> <script>123</script> <script>123</script>
右侧尽可能多的匹配大括号最后一个才停止
# 将贪婪匹配变成非贪婪匹配只需要在量词后面加一个问号即可
<.*?> <script>123</script> <script>
右侧遇到一个大括号就停止匹配
取消转义
\n 换行符
\\n \n
\\\\n \\n
re模块
在python代码中使用正则表达式需要调用内置模块re
import re
phone='123434dvwqefew2342441'
t1=re.findall('2.{1,3}',phone)
print(t1)