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

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

爬虫需要用到正则,python内置了正则re模块

 

#!/usr/bin/env python3.5# _*_coding:utf-8 _*_import re#要匹配对象line = "This is a beautiful woman"#匹配模式,^表示行首,regex_str1 = "^T.*n$"regex_str2 = "^t"if re.match(regex_str1,line):    print("以T开头,以n结尾")if re.match(regex_str2,line):    print("以t开头")

关于贪婪匹配和懒惰匹配:正则默认匹配模式是贪婪匹配模式:

line = "AOOOOAOOOABAlfsdf"regex_str = ".*(A.*A).*"match_obj = re.match(regex_str,line)print(match_obj.group(1)) result: ABA

上面的例子,这种属于贪婪匹配,下面引入? 符号就能看出效果了,?属于懒惰匹配:

 

line = "AOOOOAOOOABAlfsdf"regex_str = "A.*?A"match_obj = re.match(regex_str,line)print(match_obj.group()) result: AOOOOA

没加?的情况:

line = "AOOOOAOOOABAlfsdf"regex_str = "A.*A"match_obj = re.match(regex_str,line)print(match_obj.group())result:AOOOOAOOOABA

+前面的字符至少出现一次,下面的子字符串‘AA’就不符合要求了:

line = "AOOOOAOOOABAlfAAsdf"regex_str = ".*(A.+A)"match_obj = re.match(regex_str,line)print(match_obj.group(1))result:AlfAA

大括号,限定次数:

{m}匹配前一个字符m次,{m,n}匹配前一个字符m到n次,省略n则匹配m至无限次,省略m则匹配0至n次

中括号,指定字符:

[abc] 匹配abc中的一个,[^a]  匹配除了a以外的一个字符,[0-9] 匹配0到9中的一个

\s 匹配空白字符  \S 匹配非空白字符 

\w 匹配单词字符  \W 匹配非单词字符

[\u4E00-\u9FA5] 匹配汉字:

line = "abcad大家下午好"regex_str = ".*?([\u4E00-\u9FA5].*)"match_obj = re.match(regex_str,line)print(match_obj.group(1))result:大家下午好

\d 匹配数字

 

转载于:https://www.cnblogs.com/laonicc/p/7406030.html

你可能感兴趣的文章
FindChildControl与FindComponent
查看>>
1、简述在java网络编程中,服务端程序与客户端程序的具体开发步骤?
查看>>
C# Web版报表
查看>>
中国城市json
查看>>
android下载手动下载Android SDK
查看>>
C++学习:任意合法状态下汉诺塔的移动(原创)
查看>>
学霸修炼的秘籍
查看>>
Duplicate 复制数据库 搭建Dataguard
查看>>
leetcode133 - Clone Graph - medium
查看>>
Mybatis(一)入门
查看>>
DDR工作原理(转)
查看>>
(Frontend Newbie) Web三要素(一)
查看>>
(转载-学习)python wsgi 简介
查看>>
QPushButton 控制两种状态
查看>>
一点小基础
查看>>
PHP 自动加载类 __autoload() 方法
查看>>
JDK中的Timer和TimerTask详解(zhuan)
查看>>
【python练习】ATM&购物商城程序
查看>>
nginx 日志问题(\x22)
查看>>
装饰器、迭代器、生成器
查看>>