- 浏览: 374782 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (247)
- 数据库以及sql (11)
- java (48)
- 爬虫学习 (20)
- java编程 (28)
- python编程以及安装和配置 (27)
- oracle数据库 (32)
- mongodb基本操作 (4)
- linux学习 (7)
- easyUI (2)
- nodeJs (8)
- python学习 (16)
- 其他 (13)
- hadoop (1)
- svn (1)
- 汉字 (1)
- windows (2)
- jsp (5)
- fiddler (1)
- ETL (1)
- teamviewer (1)
- maven (4)
- GIT (2)
- datagrip (1)
- ocr (1)
- redis (3)
- mysql (3)
- linux (1)
- 数据服务 (0)
最新评论
# coding=utf-8
'''
Created on 2017年2月5日
@author: chenkai
就把正则表达式的相关内容到这里填充一下。 今天说说元字符是什么东西。
\ ^ $ * + . | ? {} [] ()
这就是元字符了,学会这些应该就够你用的了。
python中的正则表达式通过import re 来使用。
www.iplaypython.com python教程
'''
#正则表达式是引入re包
import re
s = r"abc" # 定义一个字符串规则,加r为了保持字符串愿意
text ="abcderg,bcdea,cba,abcd"
textre= re.findall(s, text)#re.findall可以获取字符串中所有匹配的字符串,本例表示在text中匹配"abc"
print textre#匹配结果为list列表
text2="top tip tcp ttp tpp tlp topit"
res=r"t[oci]p"
textre2=re.findall(res, text2)
print "匹配:%s"%textre2
res3=r"t[^oci]p"
textre3=re.findall(res3, text2)
print "取反:%s"%textre3
'''
[a-z]表示 从字母a到z所有的字母。
[0-9]等价于[0123456789] 也可以用\d 表示。 所有其它的元字符在[]中将失去原有的意义,比如示例中的^在[]表示取反。
2,^ 表示匹配字符串的开头。在多行模式下匹配每一行的开头。
注:^一般放在字符串开头
'''
s2="hello world hello hello"
s3="a hello world hello "
ress2=r"^hello"
print re.findall(ress2, s2)
print re.findall(ress2, s3) # hello 不再开头 所以没有结果
'''
$ 表示匹配字符串的结尾。在多行模式下匹配每一行的尾部。
'''
s4="a hello world hello"
ress3=r"hello$"
print re.findall(ress3, s4)
'''
\反斜杠后面可以加不同的字符以表示特殊意义。 也可用于取消所有元字符,变为普通符号。
\d 匹配任何十进制数:相当于[0-9]
\D 匹配任何非数字字符:相当于 [^0-9]
\s 匹配任何空白字符:相当于 [\t\n\r\f\v]
\S 匹配任何非空白字符:相当于 [^\t\n\r\f\v]
\w 匹配任何字母数字下划线字符:相当于[a-zA-Z0-9_]
\W 匹配任何非字母数字下划线字符:相当于[^a-zA-Z0-9_]
'''
s111="hf_jadlfhj343 l 433 45jj h5 4 3 2 5kjh54354@#$%^__"
res111=r"\d"#取0-9
print re.findall(res111,s111)
res222=r"\D"#取非0-9
print re.findall(res222,s111)
res333=r"\s"#取空白符
print re.findall(res333,s111)
res444=r"\S"#取非空白符
print re.findall(res444,s111)
res555=r"\w" #取任何字母数字下划线字符
print re.findall(res555,s111)
res666=r"\W" #取任何非字母数字下划线字符
print re.findall(res666,s111)
'''
正则表达式可以匹配不定长的字符集,另外也可以指定字符串的重复次数。
* (星号) 指定前一个字符可以匹配0次或者多次,而不是只有1次,匹配结果会尽可能的重复多次最大不超过20亿次。
(后面若加问号?变为非贪婪模式仅匹配0次:ab*? 结果为a)
+ (加号) 匹配前一个字符1次或者多次。
(后面若加问号?变为非贪婪模式仅匹配1次:ab+? 结果为ab)
? (问号) 匹配前一个字符0次或者1次。
(后面若加问号?变为非贪婪模式仅匹配0次:ab?? 结果为a) ?可以是python原本的贪婪模式变为非贪婪模式。
{m} (花括号) m是数字,表示重复前一个字符m次。
{m,n} 表示重复前一个字符m-n次。若省略m则表示0-n次,若省略n表示m到无限次。
(后面若加问号?变为非贪婪模式仅匹配0次:ab{2,100}? 结果为abb)
'''
tellphoneNumber="010-12345678 01067896523 010987654321 010-363636363636 0755-56859866"
restell = r"010-\d*" #\d表示[0-9] *表示重复0次或者无限次
print re.findall(restell,tellphoneNumber)
restell2 = r"010-\d+" #\d表示[0-9] +表示重复1次或者无限次
print re.findall(restell2,tellphoneNumber)
restell3 = r"010-?\d+" #\d表示[0-9] ?表示重复1次或者0次 在这里表示 “-” 字符可有可无
print re.findall(restell3,tellphoneNumber)
restell4 = r"010-?\d{8}" #\d表示[0-9] ?表示重复1次或者0次 在这里表示 “-” 字符可有可无 {8} 表示匹配到后面八位字符
print re.findall(restell4,tellphoneNumber) #11位电话号码,格式正确
#匹配开头是 3到4 为的电话号码
restell5 = r"\d{3,4}-?\d{8}" #\d表示[0-9] ?表示重复1次或者0次 在这里表示 “-” 字符可有可无 {8} 表示匹配到后面八位字符
print re.findall(restell5,tellphoneNumber) #11位电话号码,格式正确
'''
下面是个三个元字符。这三个在爬虫的正则表达式中常被用到,请爱它们。
( ) | . . 它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行
| 代表左右表达式任意匹配一个。a|b 匹配a或者匹配b 。 如果没有被(...)括起来它的范围是整个正则表达式。
(...) 将正则表达式分组,每个分组为一个整体,将优先返回分组内的数据。 接下来我们来匹配一个玩蛇网的title html代码
'''
html=" <title>玩蛇网论坛-Python编程开发主题学习社区 - Powered by Discuz!</title> "
rest=r"<title>(.+)</title>"
print re.findall(rest,html)
s666="qiaodaimababiekanle"
res666=r"a|i" #匹配a或i
print re.findall(res666,s666)
'''
Created on 2017年2月5日
@author: chenkai
就把正则表达式的相关内容到这里填充一下。 今天说说元字符是什么东西。
\ ^ $ * + . | ? {} [] ()
这就是元字符了,学会这些应该就够你用的了。
python中的正则表达式通过import re 来使用。
www.iplaypython.com python教程
'''
#正则表达式是引入re包
import re
s = r"abc" # 定义一个字符串规则,加r为了保持字符串愿意
text ="abcderg,bcdea,cba,abcd"
textre= re.findall(s, text)#re.findall可以获取字符串中所有匹配的字符串,本例表示在text中匹配"abc"
print textre#匹配结果为list列表
text2="top tip tcp ttp tpp tlp topit"
res=r"t[oci]p"
textre2=re.findall(res, text2)
print "匹配:%s"%textre2
res3=r"t[^oci]p"
textre3=re.findall(res3, text2)
print "取反:%s"%textre3
'''
[a-z]表示 从字母a到z所有的字母。
[0-9]等价于[0123456789] 也可以用\d 表示。 所有其它的元字符在[]中将失去原有的意义,比如示例中的^在[]表示取反。
2,^ 表示匹配字符串的开头。在多行模式下匹配每一行的开头。
注:^一般放在字符串开头
'''
s2="hello world hello hello"
s3="a hello world hello "
ress2=r"^hello"
print re.findall(ress2, s2)
print re.findall(ress2, s3) # hello 不再开头 所以没有结果
'''
$ 表示匹配字符串的结尾。在多行模式下匹配每一行的尾部。
'''
s4="a hello world hello"
ress3=r"hello$"
print re.findall(ress3, s4)
'''
\反斜杠后面可以加不同的字符以表示特殊意义。 也可用于取消所有元字符,变为普通符号。
\d 匹配任何十进制数:相当于[0-9]
\D 匹配任何非数字字符:相当于 [^0-9]
\s 匹配任何空白字符:相当于 [\t\n\r\f\v]
\S 匹配任何非空白字符:相当于 [^\t\n\r\f\v]
\w 匹配任何字母数字下划线字符:相当于[a-zA-Z0-9_]
\W 匹配任何非字母数字下划线字符:相当于[^a-zA-Z0-9_]
'''
s111="hf_jadlfhj343 l 433 45jj h5 4 3 2 5kjh54354@#$%^__"
res111=r"\d"#取0-9
print re.findall(res111,s111)
res222=r"\D"#取非0-9
print re.findall(res222,s111)
res333=r"\s"#取空白符
print re.findall(res333,s111)
res444=r"\S"#取非空白符
print re.findall(res444,s111)
res555=r"\w" #取任何字母数字下划线字符
print re.findall(res555,s111)
res666=r"\W" #取任何非字母数字下划线字符
print re.findall(res666,s111)
'''
正则表达式可以匹配不定长的字符集,另外也可以指定字符串的重复次数。
* (星号) 指定前一个字符可以匹配0次或者多次,而不是只有1次,匹配结果会尽可能的重复多次最大不超过20亿次。
(后面若加问号?变为非贪婪模式仅匹配0次:ab*? 结果为a)
+ (加号) 匹配前一个字符1次或者多次。
(后面若加问号?变为非贪婪模式仅匹配1次:ab+? 结果为ab)
? (问号) 匹配前一个字符0次或者1次。
(后面若加问号?变为非贪婪模式仅匹配0次:ab?? 结果为a) ?可以是python原本的贪婪模式变为非贪婪模式。
{m} (花括号) m是数字,表示重复前一个字符m次。
{m,n} 表示重复前一个字符m-n次。若省略m则表示0-n次,若省略n表示m到无限次。
(后面若加问号?变为非贪婪模式仅匹配0次:ab{2,100}? 结果为abb)
'''
tellphoneNumber="010-12345678 01067896523 010987654321 010-363636363636 0755-56859866"
restell = r"010-\d*" #\d表示[0-9] *表示重复0次或者无限次
print re.findall(restell,tellphoneNumber)
restell2 = r"010-\d+" #\d表示[0-9] +表示重复1次或者无限次
print re.findall(restell2,tellphoneNumber)
restell3 = r"010-?\d+" #\d表示[0-9] ?表示重复1次或者0次 在这里表示 “-” 字符可有可无
print re.findall(restell3,tellphoneNumber)
restell4 = r"010-?\d{8}" #\d表示[0-9] ?表示重复1次或者0次 在这里表示 “-” 字符可有可无 {8} 表示匹配到后面八位字符
print re.findall(restell4,tellphoneNumber) #11位电话号码,格式正确
#匹配开头是 3到4 为的电话号码
restell5 = r"\d{3,4}-?\d{8}" #\d表示[0-9] ?表示重复1次或者0次 在这里表示 “-” 字符可有可无 {8} 表示匹配到后面八位字符
print re.findall(restell5,tellphoneNumber) #11位电话号码,格式正确
'''
下面是个三个元字符。这三个在爬虫的正则表达式中常被用到,请爱它们。
( ) | . . 它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行
| 代表左右表达式任意匹配一个。a|b 匹配a或者匹配b 。 如果没有被(...)括起来它的范围是整个正则表达式。
(...) 将正则表达式分组,每个分组为一个整体,将优先返回分组内的数据。 接下来我们来匹配一个玩蛇网的title html代码
'''
html=" <title>玩蛇网论坛-Python编程开发主题学习社区 - Powered by Discuz!</title> "
rest=r"<title>(.+)</title>"
print re.findall(rest,html)
s666="qiaodaimababiekanle"
res666=r"a|i" #匹配a或i
print re.findall(res666,s666)
发表评论
-
python中将unicode(u'\u7684') 转中文字符
2018-08-16 16:16 4018ddd=u'\u7684' ddd=ddd.encode(&q ... -
python中的开放运算
2017-07-06 09:39 1046要点: 将整数用浮点数表示:由于Python的整数除法,为了 ... -
Python多线程爬取网站image的src属性实例
2017-05-16 11:18 1723# coding=utf-8 ''' Created on 2 ... -
eclipse创建scrapy项目
2017-05-12 17:23 10581. 您必须创建一个新的Scrapy项目。 进入您打算存储代码 ... -
windows安装scrapy框架步骤
2017-05-12 13:05 611Scrapy简介 Scrapy是一个快速,高效的网页抓取Pyt ... -
python操作mongoDB
2017-05-12 10:04 1058#coding=utf-8 from pymongo impo ... -
windows下安装Scrapy框架(python)
2017-03-22 14:39 7551、下载安装Python2.7.6, ... -
python "\xc5\xc0\xb3\xe6" 转汉字
2017-03-10 10:10 5358print "\xc5\xc0\xb3\xe6&qu ... -
python_GUI应用程序代码
2017-03-03 10:06 668# coding=utf-8 ''' Created on 2 ... -
python读写excel
2017-03-03 10:05 1056# coding=utf-8 ''' Created on 2 ... -
python标准异常分类
2017-03-01 16:09 447ppython标准异常分类 BaseException ... -
python在linux、windows下执行命令的方法
2017-02-22 16:52 1059windows下: import os cmdres= os. ... -
python中selenium 滚动条下拉 操作
2017-02-22 11:16 6753方法一)使用js脚本直接操作,方法如下: js=" ... -
python+BeautifulSoup+selenium+mysqldb完成数据抓取
2017-02-21 14:28 933# coding=utf-8 ''' Created on 2 ... -
python+selenium浏览器调用(chrome、ie、firefox)
2017-02-20 14:35 1954#coding=utf-8 from selenium im ... -
windows下安装beautifulsoup
2017-02-14 10:57 8761.去beautiful soup官网上去下载最新版本是4.3 ... -
windows下casperjs安装以及配置
2017-02-14 10:20 417下载casperjs,解压后命名为casperjs 添加环境变 ... -
wingdows下安装phantomjs
2017-02-14 10:19 426下载phantomjs后解压,重命名为phantomjs 添加 ... -
python下安装beautifulsoup4-4.3.1
2017-02-07 16:18 5951.去beautiful soup官网上去下载最新版本是4.3 ... -
python时间格式
2017-01-17 10:35 4961. 日期输出格式化 datetime => strin ...
相关推荐
本文实例讲述了python使用正则表达式提取网页URL的方法。分享给大家供大家参考。具体实现方法如下: import re import urllib url=//www.jb51.net s=urllib.urlopen(url).read() ss=s.replace( ,) urls=re.findall...
总结,`re.compile()`是Python正则表达式的重要工具,它使得我们可以预先编译正则表达式模式,提高程序的效率和可读性。通过创建正则表达式对象,我们可以灵活地执行多种正则操作,如查找、替换和分割字符串,从而在...
总之,Pyregex是一个非常实用的Python正则表达式工具,它让正则表达式的测试和调试变得直观和简单,是Python开发过程中不可或缺的辅助工具。对于学习和掌握正则表达式,以及提升Python文本处理能力,Pyregex都是一个...
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。 ...
【Python正则表达式使用指南】是一篇专为Python初学者设计的教程,旨在帮助读者理解和运用Python中的正则表达式。这篇文档采用中英文对照的方式,内容清晰易懂,适合快速学习和实践。 正则表达式是用于匹配字符串的...
Python字正则表达式案例
Python正则表达式基础是学习如何在Python中应用正则表达式的入门指南。正则表达式,或称为REs、regexes、regexpatterns,是能够嵌入到Python中的一个精细、高度专业化的程序语言。通过re模块,程序员得以使用这一...
6. Python正则表达式的示例 - 编译正则表达式:`pattern = ***pile(r'hello')` - 匹配字符串:`match1 = pattern.match('helloworld!')` - 提取匹配信息:`match1.group()` - 使用标志位编译:`pattern = ***...
一个描述全部python正则方法,正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 ...
### Python正则表达式详解 #### 一、概述 Python中的正则表达式(re)模块提供了与Perl类似的正则表达式功能。无论是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这意味着该模块能够很好地处理各种字符...
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这 些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一 种过滤逻辑(可以用来做检索,截取或者替换...
Python正则表达式全套笔记v0.3 本文档是小小明个人笔记,涵盖了正则表达式的各个方面,包括各种模式、分组、断言、匹配、查找、替换和切割等。文档中提供了详细的正则匹配规则表,涵盖了基本字符规则、预定义字符集...
Python正则表达式是Python编程语言中的一个强大工具,它用于处理字符串,执行模式匹配和文本提取。在Python中,正则表达式主要用于处理文本数据,例如从日志文件中提取特定信息,验证用户输入,或者从网页内容中抓取...
Python正则表达式是专门用于在字符串中匹配字符组合的一个强大的工具,它使用一种特殊的语法来表示搜索模式。正则表达式不仅在Python中有着广泛的应用,在UNIX世界中也扮演了重要的角色。本文档主要介绍Python中与...
Python正则表达式是处理字符串的强有力工具,它拥有独立于Python语言本身的语法和独立的处理引擎。虽然正则表达式在处理字符串时效率上可能不及Python内建的字符串处理方法,但其功能强大且使用广泛。正则表达式的...
总的来说,掌握Python中的字符串处理和正则表达式是任何Python开发者必备的技能,无论是在数据处理、文本分析还是网络爬虫等领域都有广泛应用。通过清华大学的精品课程,学习者可以系统地学习并掌握这些重要的编程...
在Python中,正则表达式的功能通过re模块实现,它提供了一系列方法来支持正则表达式操作。 首先,我们来看如何利用Python实现匹配特定邮箱地址,比如163邮箱。在这里,我们使用了正则表达式r'[0-9a-zA-Z_]{0,19}@**...
在Python中,正则表达式通过`re`模块来实现,提供了更丰富的功能和灵活性。 在Shell中,正则表达式使用特殊的字符来表示特定的字符集或模式。以下是一些常用的Shell正则表达式字符及其含义: 1. `[[:alnum:]]`:...
首先是正则表示的验证,先画出NFA的图,在进行NFA转DFA之后,形成闭包,然后将输入的正则表达式进行验证。