python正则表达式re模块的简单使用

正则表达式无论是提取数据还是在做爬虫的时候都会经常使用,下面说下re模块的常见使用。

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)
import re

# todo re.match的用法,从字符串第一个开始匹配
content = ‘Hello 123 4567 World_this a regex demo‘
# ^todo 匹配字符串开头,$匹配字符串结尾
result = re.match(‘^Hello\s\d{3}\s\d{4}\s\w{10}.*demo$‘,content)
print(result)
# todo 返回匹配范围
print(result.span())
# todo 返回匹配结果
print(result.group())

# todo 泛匹配
result = re.match(‘^Hello.*demo$‘,content)
print(result.group())

# todo 匹配指定目标
result = re.match(‘^Hello\s(\d+)\s(\d+)\sWorld.*demo$‘,content)
print(result.group(1),result.group(2))

# todo 贪婪匹配,尽可能匹配多的字符
result = re.match(‘^He.*(\d+).*demo$‘,content)
print(result.group(1))

# todo .*?非贪婪匹配,尽可能匹配少的字符
result = re.match(‘^He.*?(\d+).*demo$‘,content)
print(result.group(1))

contents = ‘‘‘Hello 1234567 World_this
is a regex demo‘‘‘

# todo 匹配模式,re.S匹配换行
results = re.match(‘^He.*?(\d+).*?demo$‘,contents,re.S)
print(results.group(1))

# todo 转义\,匹配特殊字符需要加转义符\
content = ‘price is $5.00‘
result = re.match(‘price is \$5\.00‘,content)
print(result)

re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)
‘‘‘绝世唐门小说链接匹配‘‘‘
import re
import requests

resp = requests.get(‘http://www.jueshitangmen.info‘).text
print(resp)

# todo 获取.css结尾的链接
pattern = ‘<link.*?href="(http:.*?.css)"\s\/>‘
css = re.search(pattern,resp,re.S)
print(css.group(1))

re.findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

‘‘‘绝世唐门链接匹配‘‘‘
import re
import requests

resp = requests.get(‘http://www.jueshitangmen.info‘).text
print(resp)

# todo 获取所有以.html结尾的链接
pattern = ‘<li>.*?\shref="(http:.*?.html)"\srel‘
html_link = re.findall(pattern,resp,re.S)
print(html_link)
for i in html_link:
    print(i)

单个字符串匹配:

多个字符串匹配:

匹配分组:

 

常见匹配模式:

原文地址:https://www.cnblogs.com/xiamaojjie/p/11666783.html

时间: 2024-08-15 01:02:05

python正则表达式re模块的简单使用的相关文章

python 正则表达式 re模块基础

简介 正则表达式(regular expression)是可以匹配文本片段的模式.最简单的正则表达式就是普通字符串,可以匹配其自身.比如,正则表达式 'hello' 可以匹配字符串 'hello'. 要注意的是,正则表达式并不是一个程序,而是用于处理字符串的一种模式,如果你想用它来处理字符串,就必须使用支持正则表达式的工具,比如 Linux 中的 awk, sed, grep,或者编程语言 Perl, Python, Java 等等. 正则表达式有多种不同的风格,下表列出了适用于 Python

Python正则表达式re模块

正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了. 正则表达式概念 使用单个字符串来描述匹配一系列符合某个句法规则的字符串 是对字符串操作的一种逻辑公式

python 正则表达式re模块

#####################总结##############    优点:  灵活, 功能性强, 逻辑性强.               缺点:  上手难,旦上手, 会爱上这个东西       工具: 各大文本编辑器一般都有正则匹配功能. 我们也可以去 http://tool.chinaz.com/regex/进行在线测试. 正则表达式由普通字符和元字符组成,普通字符包含大小写字母, 数字,在匹配普通字符的时候我们直接写就可以了 (1) 字符组  字符组很简单用[]括起来,在[]中

Python 正则表达式re模块使用

re是Python的正则表达式模块,在此记录实际开发过程中的使用. 正则表达式的最佳实践是使用re.compile方法编译后使用,效率会更好 1.re.search() example: TS 1423031065.017865025 2015-02-04 14:24:25  14:24:25 up 82 days, 23:51,  2 users,  load average: 0.02, 0.03, 0.10 匹配 TS开头跟一个空格后跟若干个数字. >>> import re &g

Python——函数,模块,简单文件读写

函数(function)定义原则: 最大化代码重用,最小化代码冗余,流程符合思维逻辑,少用递归; 函数的定义方法: def function_name(param_1, param_2): ..... return output  #输出,结束函数 注意: 函数要在使用之前定义函数的使用方法以print()函数为例形式参数和实际参数在函数内定义的变量为本地变量,在函数外无法访问 参数传递: 实际参数通过赋值运算传递给形式参数注意:如果参数是列表,在函数内可以被修改 (列表可以原位传递) 1 de

Python——函数,模块,简单文件读写(python programming)

函数(function)定义原则: 最大化代码重用,最小化代码冗余,流程符合思维逻辑,少用递归; 函数的定义方法: def function_name(param_1, param_2): ..... return output  #输出,结束函数 注意: 函数要在使用之前定义函数的使用方法以print()函数为例形式参数和实际参数在函数内定义的变量为本地变量,在函数外无法访问 参数传递: 实际参数通过赋值运算传递给形式参数注意:如果参数是列表,在函数内可以被修改 (列表可以原位传递) 1 de

python正则表达式 ---- re模块

1.正则表达式 正则就是使用一些具有特殊含义的符号组合到一起,来描述字符串或字符的方法. 2.常用的正则匹配模式 import reprint(re.findall('\w','hello_ | egon 123')) #匹配字母数字下划线 print(re.findall('\W','hello_ | egon 123')) #与小w相反 匹配非数字字符下划线 print(re.findall('\s','hello_ | egon 123 \n \t')) #匹配任意空白字符如 [ \t,\

Python#常用的模块和简单用法

目录 random 随机模块 os 文件夹模块: time 时间模块: matplotlab.pyplot 作图模块 mpl_toolkits.mplot3d 绘制3D图模块 Pygame Requests 请求URL: 文章导读 random 随机模块 import random code = random.choice(stock_list) # 从一个列表中随机选取元素下面是我目前经常用到的模块,为了方便使用,不是有特殊需求的话,个人觉得一开始没比亚每个模块都很深入学习,只要知道自己常用的

Python学习—paramiko模块实现简单的ssh与sftp

paramiko模块 paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能.这是一个第三方的软件包,使用之前需要安装. import paramiko # ssh [email protected] # 创建一个ssh对象 client = paramiko.SSHClient() #如果第一次连接陌生的IP,自动选择yes确认连接 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接