开发手册 欢迎您!
软件开发者资料库

Python 使用正则表达式提取替换img(src)或a(href)标签的url

Python中需要处理html中引用的图片文件或链接地址时,可能需要提取替换成新路径,换成新域名等情况。本文主要介绍Python 中使用正则表达式提取替换img(src)或a(href)标签的url地址的方法,以及相关的示例代码。

1、正则表达式

参考文档:Python 正则表达式(RegEx)

2、使用正则表达式提取替换字符串

参考文档Python 正则表达式分组匹配提取替换字符串(回调函数)

3、re.sub(pattern, repl, string, count=0, flags=0)

Python中实现正则表达式提取替换,需要使用re.sub(),具体参数说明如下:

1)pattern参数

pattern是正则表达式字符串。字符串前一般加r。

参考文档:Python 字符串前r、b、u和f的前缀作用及用法

2)repl参数

repl是被替换成的内容,可以是字符串,也可以是函数。字符串匹配后直接替换,函数则会每次匹配的字符串会调用执行进行处理。

3)string参数

string表示要被处理,要被替换的字符串。

4)count参数

count是匹配替换的次数

5)flags参数

IGNORECASE(简写I),匹配对大小写不敏感。

LOCALE(简写L),locales是C语言库中的一项功能,是用来为需要考虑不同区域语言的编程提供帮助的。

MULTILINE(简写M),^匹配字符串的开始和字符串中每行的开始。同样的, $元字符匹配字符串结尾和字符串中每行的结尾。

DOTALL(简写S),此模式下.的匹配不受限制,可匹配任何字符,包括换行符,但默认是不能匹配换行符。

VERBOSE(简写X),冗余模式, 此模式忽略正则表达式中的空白和#号的注释。

4、使用正则表达式提取替换img(src)或a(href)标签的url

使用正则表达式提取替换html中标签的url代码示例,如下,

# -*- coding: utf-8 -*-import redef replace_num(str):  print("--------------")    print(str.group())    print(str.group(1))#匹配到的第1个分组  #print(str.group(2))#匹配到的第2个分组  print("--------------")   return ""my_str = '''

1、JDK11安装

1)下载JDK11

Oracle JDK11: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

OpenJDK11: http://jdk.java.net/11/

在上面两个地址下载需要的版本。

本文主要是64位win10上安装,文件下载地址:https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_windows-x64_bin.zip

2)解压下载文件

将下载好的.zip文件解压到指定的安装目录,例如,安装到C:\\Program Files\\Java下,在Java文件夹下新建jdk11文件夹,将文件解压到jdk11文件夹下。

注意:zip文件解压后,JDK中bin文件夹应该在jdk11文件夹下。

如果下载的是exe文件,就选择安装目录为新建好的那个JDK11文件夹下。

2、配置环境变量

p>1)配置JAVA_HOME

按Windows键+R键,出现运行窗口,在打开文件框中输入sysdm.cpl,点击确定,出现\"系统信息\"窗口。

在系统信息窗口依次点击,

系统信息窗口 =》高级 =》环境变量-》系统环境变量 , 注意:如果用户环境变量中有对应的环境变量设置,就在用户环境变量中添加。否则会优先读取用户环境,有可能找不到设置的环境变量。如果没有,在系统环境变量或用户环境哪一个都可以,系统环境变量是对所有用户生效的。

点击环境变量->新建->变量名JAVA_HOME,变量值JDK11的安装目录如C:\\Program Files\\Java\\jdk11

\"JAVA_HOME\"

2)配置Path环境变量

编辑Path变量


%JAVA_HOME%\\bin;
这个变量插入最前面,注意要有分号和后面的变量间隔开。

注意:如果是win10系统,点击编辑后,要点击新建,值为%JAVA_HOME%\\bin,win10系统中不用自己加冒包。

\"httpfileaionlifexyzsourcedownloadid5bd1bcd1dc72d91ff8d53a14\"

效果如下图,

\"Path\"

3)验证是否安装成功

按windows键+R键,输入cmd,在打开的cmd窗口中输入java -version,安装成功提示如下:

Microsoft Windows [版本 10.0.17134.254]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\\Users\\Administrator>java -version
java version \"11.0.1\" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
'''#a = re.sub(r'
(.+?)
', replace_num, my_str,flags=re.I|re.M|re.S)img = re.sub(r'', replace_num, my_str,flags=re.I|re.M|re.S)#a = re.sub(r'', replace_num, my_str,flags=re.I|re.M|re.S)a = re.sub(r'', replace_num, my_str,flags=re.I|re.M|re.S)print(img)print(a) #每次匹配一个数字,执行函数,获取替换后的值