正则表达式python
import re # re.match() 能够匹配出以xxx开头的字符串
ret = re.match(r"H", "Hello Python")
# print(ret.group()) # 分组
ret = re.match(r"([^-]*)-(\d+)", "010-12345678")
# print(ret.group(1)) # 通过引用分组中匹配到的数据即可,但是要注意是元字符串,即类似 r""这种格式
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", "<html>hh</html>")
# print(ret.group(0)) # 不仅匹配开头
ret = re.search(r"\d+", "阅读次数为 9999")
# print(ret.group()) # 匹配多个值,并返回一个列表
ret_list = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345")
# print(ret_list) # 匹配并替换多个值,并返回一个列表
ret_list = re.sub(r"\d+", '998', "python = 997 python = 997")
print('ret_list=====: %s' % ret_list) # 匹配并切割
ret_list = re.split(r":| ", "info:xiaoZhang 33 shandong")
# print(ret_list) # 非贪婪模式。在"*","?","+","{m,n}"后面加上?,使贪婪变成非贪婪。
s = "aa2343ddd"
r = re.match(r"aa(\d+?)", s)
# print(r.group(1)) print('111111111111111111')
# 匹配:'http://www.freebuf.com',
# url = 'http://www.freebuf.com'
url = 'https://freebuf.com/articles/es/123%e7%b1%b3%e9%9b%aa%e5%84%bf'
url = 'http://www.freebuf.com/author/%e7%b1%b3%e9%9b%aa%e5%84%bf'
# url = 'http://www.freebuf.com/157843sdf.html'
# 匹配域名:https://www.freebuf.com
ret_list = re.search(r'https?://(\w+?\.)+\w+\/?$', url)
print(ret_list.group()) if ret_list != None else print('ret_list = None') # 匹配文件夹:https://www.freebuf.com/articles/es
ret_list = re.search(r'https?://(\w+?\.)+\w+(\/\w+)*(\/\w+\/?)$', url)
if ret_list != None:
print(ret_list.group())
else:
print('ret_list = None')
# print(ret_list.group()) if ret_list != None else print('ret_list = None')
pass
# 匹配文件:http://www.freebuf.com/news/157843.html
ret_list = re.search(r'https?://(\w+?\.)+\w+(\/\w+)*(\/\w+\.\w+)$', url)
print(ret_list.group()) if ret_list != None else print('ret_list = None')
先编译一次,后面就不编译了
import re str = 'https://www.freebuf.com/page/357' pattern = re.compile(r'(p|s)\:\/\/www\.(.+?\..+?)\/+?', re.DOTALL)
match = pattern.findall(str) print(type(match))
print(match)
忽略大小写
在正则表达式前面加(?i)
import re str1 = """
201.158.69.116 - - [03/Jan/2013:21:17:20 -0600] fwf[-] tip[-] 127.0.0.1:9000 0.007 0.007 MX pythontab.com GET /html/test.html http/1.1 " 200" 2426
"http://a.com" "es-ES,es;q=0.8" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11" 172.16.119.8 - admin [15/Aug/2011:18:17:50 +0800] "PROPFIND /svn/EAGLE HTtP/1.1" 201 649
172.16.119.8 - admin [15/Aug/2011:18:17:50 +0800] "PROPFIND /svn/EAGLE/!svn/vcc/default HTTP/1.1" 207 401
172.16.119.8 - admin [15/Aug/2011:18:17:50 +0800] "PROPFIND /svn/EAGLE/!svn/bln/31 HTTP/1.1" 207 454
172.16.119.8 - admin [15/Aug/2011:18:17:50 +0800] "PROPFIND /svn/EAGLE HTTP/1.1" 207 649
172.16.119.8 - admin [15/Aug/2011:18:17:50 +0800] "PROPFIND /svn/EAGLE/!svn/vcc/default HTTP/1.1" 207 454
""" pattern = re.compile(r'(?i)HTTP/.+?\b[^\d]+?([2345]\d{2})', re.DOTALL)
ret = pattern.findall(str1)
print(ret)
点号默认不匹配换行,要想匹配换行,需要设置re.DOTALL
pattern = re.compile(r'(?i)HTTP/.+?\b[^\d]+?([2345]\d{2})', re.DOTALL)
正则表达式python的更多相关文章
- 正则表达式python和C++对比
pattern格式(基本通用): pattern格式 符号 说明 ^ 匹配开头 $ 匹配结尾 . 匹配任意一个字符 [...] 匹配任意一个指定的字符 [^...] 匹配任意一个非指定的字符 * 匹配 ...
- Python 正则表达式 (python网络爬虫)
昨天 2018 年 01 月 31 日,农历腊月十五日.20:00 左右,152 年一遇的月全食.血月.蓝月将今晚呈现空中,虽然没有看到蓝月亮,血月.月全食也是勉强可以了,还是可以想像一下一瓶蓝月亮洗 ...
- python正则表达式 Python Re模块
最近在学python 练习的时候随手写的,方便以后自己参考~如果能对其他同学有所帮助就再好不过了 希望大家指正哦~ 我会随时整理的,先这样~ 正则表达式 1.元字符([ ]),它用来指定一个char ...
- phython正则表达式 Python Re模块
反斜杠问题 与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜杠困扰.假如你需要匹配文本中的字符”\”, Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式 ...
- 正则表达式-Python实现
1.概述: Regular Expression.缩写regex,regexp,R等: 正则表达式是文本处理极为重要的工具.用它可以对字符串按照某种规则进行检索,替换. Shell编程和高级编程语言中 ...
- 正则表达式 ——python 基础
一.引言 正则表达式是含有文本和特别字符的字符串,这些文本和特别字符描述的模式可以识别各种字符串. 正则表达式的强大之处在于特殊符号的应用,特殊符号定义了字符集合.子组匹配,模式重复次数...正是这些 ...
- 正则表达式 python
下面这种方式 从结果上看 匹配的是关键字, 但是不是 每一次都可以 100% 准确 search_words_dict = { "肠炎宁": 0, "维生素AD" ...
- Python正则表达式中的re.S
title: Python正则表达式中的re.S date: 2014-12-21 09:55:54 categories: [Python] tags: [正则表达式,python] --- 在Py ...
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
随机推荐
- win7在64位系统下编译openssl
曾经在笔记本上配置过openssl-0.9.8g版本号,今天在公司的台式机上配置死活没配置成功.机器的系统是win7,64位.编译openssl-1.0.1e出现各种莫名的错误,最后无意中编译了1.0 ...
- MVC+LINQToSQL的Repository模式之(二)数据基类
namespace Data.TEST{ /// <summary> /// 数据操作基类 /// </summary> public abstract ...
- JavaScript 中的执行上下文和调用栈是什么?
http://zcfy.cc/article/what-is-the-execution-context-amp-stack-in-javascript-by-david-shariff-4007.h ...
- Spring------Spring data jpa 定义实体类(@OneToMany等的使用)
转载: https://course.tianmaying.com/spring-data-jpa+one-to-many#2
- day04<Java语言基础+>
Java语言基础(循环结构概述和for语句的格式及其使用) Java语言基础(循环结构for语句的练习之获取数据) Java语言基础(循环结构for语句的练习之求和思想) Java语言基础(循环结构f ...
- python中模块,包,库
模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...
- python2.0 s12 day8 _ 堡垒机前戏paramiko模块
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 paramiko模块是做主机管理的,他模拟了一个ssh. 有两种形式连接形式, ...
- m2014-architecture-imgserver->Lighttpd Mod_Cache很简单很强大的动态缓存
Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全.快速.兼容性好并且灵活的web server环境.具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模 ...
- Docker源码分析(二):Docker Client创建与命令执行
1. 前言 如今,Docker作为业界领先的轻量级虚拟化容器管理引擎,给全球开发者提供了一种新颖.便捷的软件集成测试与部署之道.在团队开发软件时,Docker可以提供可复用的运行环境.灵活的资源配置. ...
- ubuntu14.04 LTS Visual Studio Code 编辑器推荐
除了ubuntu geany (茶壶图标) 这个一直爱好的编辑器,发现一个新的编辑器“Visual Studio Code”,也是很好用,记录下 https://code.visualstudio.c ...