用正则怎么将html文件中文字取出进行ASCII码转换?

用正则怎么将html文件中文字取出?今天碰到这个问题,思来想去尝试了好几种方法,历经一阵头脑风暴,最后终于还是解决了,想想还是来记录一下。一共定义了三个函数,包含正则切割、正则判断对象开头、ASCII码编码、ASCII码解码、isinstance函数使用、with上下文。

 

首先随便找了一段文字,创建了一个html文件,内容如下:

 

<p>tkinter模块(“Tk接口”)是ScripticsTk GUI工具包的<b>标准Python接口</b>,支持在Unix平台、Windows系统和Macintosh系统上运行。因为它由<a href="https://www.myblou.com">很多</a>小构件组成,当我们在设计一个GUI时,可以通过它丰富的构件库满足我们的需求。</p>
<br>
<p>tkinter模块(“Tk接口”)是ScripticsTk GUI<b>工具包</b>的标准Python接口,支持在Unix平台、Windows系统和Macintosh系统上运行。因为它由很多小构件组成,当我们在设计一个GUI时,可以通过它丰富的构件库满足我们的需求。</p>
<br>

 

本文转自:https://www.myblou.com/archives/1383

 

导入re模块:

import re

 

 

函数一:上面是将html文件中的所有文字(不包含标签)进行ASCII编码,并返回成一个列表。

 

def ASC_bianma():
    ‘‘‘将文字进行ASC编码‘‘‘
    with open(r‘C:\Users\dell\Desktop\zhengze\ni.html‘,‘r‘,encoding=‘utf8‘) as f:
        wenzi = f.read()        # 导出文件中的所有内容
        pipei = re.split(r‘(<.*?>)‘,wenzi)      # 使用正则以标签进行分隔,返回一个列表
        lst = []
        for x in pipei:
            if re.match(‘<.*?>‘,x) or re.match(r‘\s‘,x):    # 判断条件:如果是以<.*?>开头或是空白字符开头
                lst.append(x)     # 直接追加到l列表中
                continue        # 跳出本次循环进行下次循环
            else:
                for v in x:
                    bianma = ord(v)      # 进行ASC编码
                    lst.append(bianma)     # 追加到l列表中
        return lst

 

 

函数二:函数二是将所有文字(不包含标签)进行ASCII解码,并返回成字符串。


 

def ASC_jiema(lis):
    ‘‘‘将ASC码转换成文字‘‘‘
    ls = []
    for x in lis:
        if isinstance(x,int):       # 判断x是不是int型
            jiema = chr(x)          # 进行ASC解码
            ls.append(jiema)         # 追加到t列表中
            continue            # 跳出本次循环进行下次循环
        else:
            ls.append(x)         # 直接追加到t列表中
    st = ‘‘.join(ls)              # 将t列表中的所有元素连接,返回成字符串
    return st

 

 

函数三:将解码的字符串写入一个新建的html文件中。

用正则怎么将html文件中文字取出进行ASCII码转换?

上一篇:tp5 使用phpexcel 导出数据


下一篇:nodejs内置模块有哪些?