博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
330正则表达式
阅读量:6223 次
发布时间:2019-06-21

本文共 1997 字,大约阅读时间需要 6 分钟。

正则表达式解析网页: 正则表达式就是对字符串进行操作的逻辑公式,可以把网页源码变成字符串,再用正则表达式对其进行提取 . *

匹配除了换行符外的任意字符 匹配前一个字符0或多次

+	                              ?复制代码

匹配前一个字符1或多次 匹配前一个字符0或1次

^   	                              $ 匹配字符串开头	                    匹配字符串结尾            \s	                             \S  匹配空白字符	                 匹配任意非空白字符复制代码

d \D

匹配数字	                     匹配任何非数字           \w	                             \W  匹配字母和数字	                 匹配任何非字母和数字            []	                               ()      一组字符	                            表达式复制代码

模块 re re.match代表从字符串起始进行匹配,无法匹配则为None re.match的使用方法是:re.match(pattern,string,flags=0),pattern是正则表达式,string是字符串 flags是标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等 可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。 .group(num=0):匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。 .groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。 re.search 扫描整个字符串并返回第一个成功的匹配。 (re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None; 而re.search匹配整个字符串,直到找到一个匹配。) re.findall可以找到所有的匹配

例子与解释:

import re

test=re.match('www','www.baidu.com')

print('result:',test)

print('begin and end tuple:',test.span())

print('begin:',test.start())

print('end:',test.end()) 结果: result: <re.Match object; span=(0, 3), match='www'> begin and end tuple:(0, 3) begin:0 end:3

import re

pattern='Cats are smarter than dogs'

test=re.match(r'(.) are (.?) dogs',pattern)

print('the whole sentence:',test.group(0))

print('the first result:',test.group(1))

print('the second result:',test.group(2))

print('a tuple for result:',test.groups()) 结果: the whole sentence: Cats are smarter than dogs

the first result: Cats

the second result: smarter than

a tuple for result: ('Cats', 'smarter than')

r表示字符串为非转义的原始字符串,让编译器忽略反斜杠 (.) 第一个匹配分组,.代表匹配除换行符之外的所有字符 (.?)第二个匹配分组,.?后面多个问号,代表非贪婪模式,也就是说只匹配符合条件的最少字符 group() 等同于 group(0),表示匹配到的完整文本字符 group(1) 得到第一组匹配结果,也就是(.)匹配到的 group(2) 得到第二组匹配结果,也就是(.?)匹配到的 groups()得到所有匹配结果

import re link='www.baidu.com www.baidu,com' print(re.findall('www',link)) ['www', 'www']

转载于:https://juejin.im/post/5c9f2262e51d45521078eeb9

你可能感兴趣的文章
硬盘还原软件Comodo Time Machine
查看>>
并行计算在基于遥感影像中的应用
查看>>
uniq过滤工具
查看>>
Android中的AutoCompleteTextView的使用
查看>>
SYN Flood DOS Attack with C Source Code
查看>>
命令查看mysql数据库的大小
查看>>
重载(overload)、覆盖(override)、隐藏(hide)的区别
查看>>
iOS的主要框架介绍
查看>>
Unknown error (0×80005000) (type COMException) TFS 2010
查看>>
C#动态生成html页面
查看>>
HDU 1358
查看>>
面向对象分析与设计(第3版)
查看>>
超棒的jQuery响应式图片处理插件:jQuery picture
查看>>
基于jQuery UI Autocomplete的AngularJS 指令(directive)扩展
查看>>
jsp包含文件的两种方法
查看>>
android 安装应用到SD卡上
查看>>
VIM快捷键大全(转)
查看>>
数据挖掘学习02 - 使用weka的kmeans聚类分析
查看>>
深入浅出asterisk(二):chan_sip代码分析(上)
查看>>
正则表达式周二挑战赛 - 第八周
查看>>