+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-08(58)

2019-09(95)

2019-10(18)

2019-11(2)

2019-12(17)

re学习(一)

发布于2019-10-29 18:44     阅读(961)     评论(0)     点赞(14)     收藏(5)


0

1

2

3

4

5

# coding: utf-8
import re

'''
re.match()
re.search()
    返回的都是一个对象,obj.group()
re.findall()
    返回的是一个列表
re.compile()
re.sub()
'''
string = '<div>浪花淘尽英雄,是非成败转头空!</div></div></div>'
pattern = re.compile(r'<div>.*?</div>')
print(pattern)  # re.compile('<div>.*?</div>')
print(type(pattern))  # <class '_sre.SRE_Pattern'>
ret = pattern.search(string)
# print(ret)
print(ret.group())  # <div>浪花淘尽英雄,是非成败转头空!</div>
'''
compile()的定义:
compile(pattern, flags=0) 
Compile a regular expression pattern, returning a pattern object.
从compile()函数的定义中,可以看出返回的是一个匹配对象,
它单独使用就没有任何意义,需要和findall(), search(), match()搭配使用。

compile()与findall()一起使用,返回一个列表。

compile()与match()一起使用,可返回一个class、str、tuple。
但是一定需要注意match(),从位置0开始匹配,匹配不到会返回None,
/group属性了,并且与group使用,返回一个单词‘Hello’后匹配就会结束。

compile()与search()搭配使用, 返回的类型与match()差不多, 
但是不同的是search(), 可以不从位置0开始匹配。
但是匹配一个单词之后,匹配和match()一样,匹配就会结束。

'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
# coding: utf-8
import re

# 不区分大小写
string = 'love'
pattern = re.compile(r"LOVE", re.I)
ret = pattern.search(string)
# print(ret)  # None
print(ret.group())  # love
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
# coding: utf-8
import re

# 视为单行模式
string = '''<div>
香山一日游
白马不等留
十年不轻忘
莫在多年后
叹当时年少
</div>'''
pattern = re.compile(r'<div>.*?</div>', re.S)  # 不加re.S会匹配不到数据,报错

ret = pattern.search(string)
print(ret.group())  # 匹配所有内容,一行

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
# coding: utf-8
import re

# 视为多行模式
string = '''这些都是以爱开头的歌名
爱情鸟
爱情买卖
爱上一个不回家的人
爱我别走
爱的供养
爱是一道光
'''
pattern = re.compile(r"^爱", re.M)
ret = pattern.findall(string)
print(ret)  # 返回列表   内容“爱”

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
# coding: utf-8
import re

string = '''<div>
<ul>
    <li><a href='www.yan.com'>柳岩</a></li>
    <li><a href='www.guafu.com'>黑寡妇</a></li>
    <li><a href='www.yuan.com'>高圆圆</a></li>
    <li><a href='www.zhen.com'>田震</a></li>
</ul>
</div>'''

pattern = re.compile(r"<a href='(.*?)'>(.*?)</a>")
# pattern = re.compile(r"<a href='(.*?)'>(.*?)</a>")
ret = pattern.findall(string)
print(ret)

# [('www.yan.com', '柳岩'), ('www.guafu.com', '黑寡妇'), ('www.yuan.com', '高圆圆'), ('www.zhen.com', '田震')]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

0

1

2

3

4



所属网站分类: 技术文章 > 博客

作者:83748wuw

链接: https://www.pythonheidong.com/blog/article/147825/9ff7a360d1ffe02b2099/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)