文章首发及后续更新:http://mwhls.top/453.html
新的更新内容请到mwhls.top查看。
如果没有图片请到上方的文章首发页面查看。
这块内容并没有详细的正则表达式内容,作者知识储备不足是其一,项目中用不上是其二。
基本示例
import re #引入re正则表达式库
matching_rule = re.compile("asd") #定义正则表达式规则
search_result = matching_rule.findall("asd, asdasd, and asdasdasd in a string waiting for searching") #利用规则搜索字符串
print(search_result) #输出结果
输出结果:['asd', 'asd', 'asd', 'asd', 'asd', 'asd']
匹配规则
函数:
规则变量名 = re.compile("规则内容")
规则内容举例
a = re.compile("a") //匹配所有a字符
b = re.compile("a+") //匹配所有a, aa, aaa, aaaa...字符串
c = re.compile("asd*") //匹配所有as, asd, asdd, asddd...字符串
d = re.compile("(asd)+") //匹配所有asd, asdasd, asdasdasd...字符串
e = re.compile('"') //匹配双引号"
f = re.compile('"(.*)"') //匹配所有双引号中的字符串,如字符串"asd",则匹配asd
以规则 f 为基础搜索,假设要搜索超链接的连接,通过html的语法可以知道,超链接是使用
<a href = "http://mwhls.top">首页<a/>
的格式写的,其中,超链接的内容位于 href = "这里"
那么,匹配规则为
rule = re.compile('href = "(.*)"')
这里要注意,规则外是用单引号 ' ,这是因为要匹配的文字中含有双引号 "
通过这个规则,匹配结果是
http://mwhls.top
此外,为了防止转义字符的影响,一般使用 r"" ,而不是 ""
print(r"\\aa") 输出结果为\\aa
print("\\aa") 输出结果为\aa
搜索函数
函数:
规则变量名.findall(待匹配字符串)
findall匹配所有符合规则的字符
findall最终会返回一个列表,例如
web_data = "<a href = "http://mwhls.top">首页<a/>"
rule = re.compile('href = "(.*)"')
result = rule.findall(web_data)
print(result)
会返回一个只有一个元素的列表
['http://mwhls.top']