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
2)配置Path环境变量
编辑Path变量
把
%JAVA_HOME%\\bin;
这个变量插入最前面,注意要有分号和后面的变量间隔开。注意:如果是win10系统,点击编辑后,要点击新建,值为%JAVA_HOME%\\bin,win10系统中不用自己加冒包。
效果如下图,
3)验证是否安装成功
按windows键+R键,输入cmd,在打开的cmd窗口中输入java -version,安装成功提示如下:
Microsoft Windows [版本 10.0.17134.254]'''#a = re.sub(r'
(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)(.+?)', 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) #每次匹配一个数字,执行函数,获取替换后的值