HTML常见标签与正则表达式

HTML中的常见标签

  • 特殊符号

  • 常用标签

  • 列表标签

  • 表格标签

  • 表单标签

  • 正则表达式


 

特殊符号:

空格键 &nbsp 

 大于号>: >

  小于号 <: &lt;

 and符 &: &amp;

  羊角符¥ &yen;

  商标符 &reg;

  版权符&copy;

常用标签:

a标签:

<a href="https://www.baidu.com">链接标签</a>

链接标签

  img标签

<img src="图片地址" alt="">

  图片标签 图片可以是网络也可以是本地

 div标签

<div>页面布局标签</div> 内部可以无限嵌套任意标签

  span标签

<span>页面文本标签</span>

所有网页中涉及到文字可能会出现的标签

列表标签:

由<ul> 和<li>组合而成 可以横向或者竖向排列

  

 表格标签:

<table>    
    <thead>
        <tr>
            <th>姓名</th>      
            <th>年龄</th>
            <th>性别</th>
        </tr>                  
    </thead>                 
    <tbody>
        <tr>
            <td>max</td>        
            <td>19</td>
            <td></td>
        </tr>
    </tbody>                 
</table>

 表单标签:

当涉及到用户数据获取的时候需要使用表单标签

text 文本 email 邮箱格式 date 日期格式 

password  密文展示

  

radio 单选

  

  checkbox 多选

  file 文件

  submit   提交按钮 reset 重置按钮 value自定义按钮

 

select标签 option子标签  下拉框单选

textarea标签  获取大段文本 

标签特性

<a id='' class=''></a>
上述id、class等都称之为a标签的属性

id:类似于标签的身份证号码 用于唯一标识标签在同一个html文档中id不能重复

class:标签的种类,用于区分不同的类 

       <p class='c1'></p>
                <a class='c1'></a>
                <div class='c1'></div>
         一个标签可以含有多个class值
                <span class='c1 c2 c3'></span>

相当于 id 是查找一个标签 class 是查找一群人

一个标签也可以含有多个class值          <span class='c1 c2 c3'></span>

 标签还可以自定义任意属性

标签之间的关系描述

<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('不是合法的手机号码'

正则表达式之字符组[](基本)

  [0123456789]  匹配0到9之间的任意一个数字包括首尾
  [0-9]         简写:匹配0到9之间的任意一个数字包括首尾
  [a-z]         匹配小写字母a到z之间的任意一个字母包括首尾
  [A-Z]         匹配大写字母A到Z之间的任意一个字母包括首尾
  [0-9a-zA-Z]   匹配数字或者小写字母或者大写字母

 

 

 

 

 

 

 

 

 正则表达式之符号

# 符号在匹配内容的时候是单个单个字符挨个匹配
.         匹配除换行符以外的任意字符(只能匹配一个字符)
\d        匹配数字
^         匹配字符串的开始
$         匹配字符串的结尾
a|b       匹配字符a或字符b
()        给正则表达式分组 本身没有任何意义
[...]     匹配字符组中的字符
[^...]    匹配除了字符组中字符的所有字符(取反)

^a 意思就是匹配首位a的字符

f$ 意思就是匹配末尾f的字符

14|15|16 匹配 14 或15或16的字符

正则表达式之量词

# 跟在正则表达式的后面可以一次性匹配多个字符
'''量词必须跟在正则表达式后面 不能单独出现使用'''
    *        重复零次或更多次
    +        重复一次或更多次
    ?        重复零次或一次
   {n}       重复n次
   {n,}      重复n次或更多次
   {n,m}     重复n到m次
 
"""正则表达式默认情况下都是贪婪匹配>>>:尽可能多的匹配"""
正则            待匹配的文本            结果
海.             海燕海娇海东            三个结果  海燕、海娇、海东
^海.            海燕海娇海东            一个结果  海燕
海.$            海燕海娇海东            一个结果  海东
海.*            海燕海娇海东            一个结果  海燕海娇海东

练习题

李.?  李杰和李莲英和李二棍子            李杰
                                    李莲
                                    李二
# 问号表示零次或一次 默认贪婪即一次 其实就是正则表达式本身的一次

李.*      李杰和李莲英和李二棍子            李杰和李莲英和李二棍子
李.+      李杰和李莲英和李二棍子            李杰和李莲英和李二棍子
李.{1,2}  李杰和李莲英和李二棍子            李杰和  李莲英  李二棍


"""贪婪匹配与非贪婪匹配"""
<.*>        <script>123</script>      <script>123</script>
    右侧尽可能多的匹配大括号最后一个才停止
# 将贪婪匹配变成非贪婪匹配只需要在量词后面加一个问号即可
<.*?>        <script>123</script>
    右侧遇到一个大括号就停止匹配

取消转义

\n        匹配的是换行符
\\n       匹配的是\n
\\\\n     匹配的是\\n

内置模块

re模块

    import re
    text = '<script>123</script>'
    res = re.findall('<.*?>',text)
    print(res)

 

posted @ 2021-09-14 20:14  查无此人cxc  阅读(1377)  评论(0)    收藏  举报