python正则表达式入门
基本概念
使用正则表达式需要import re
表达式前加r避免转义
\d代表数字,\s代表空白字符,\w代表字母+数字。
.代表任意单个字符
{m,n}代表前面字符至少出现m次,最多出现n次。
(xxx)括号代表分组,方便在匹配结果中取出。
(?:xxx)不分组,不能从匹配结果中单独取出,可以在后面加匹配次数。
research
只返回第一个匹配结果,不匹配则返回None.
结果.group()代表匹配结果,group(1)代表表达式中第一个()内的字符。
import re
text = "inet addr:211.2.10.100 Bcast:211.2.10.255 Mask:255.255.255.0 inet addr:211.2.10.123"
# find ip address
m = re.search(r"inet addr:((\d{1,3}\.){3}\d{1,3})", text)
ip = m.group(1)
print ip
# 211.2.10.100
findall
匹配所有结果,返回列表。
如果模式中有1个(),则列表内容为分组字符串,如果有1个以上(),则列表内容为元组,元组内容为分组内容。
import re
a = """tcpdump -n -x -c 1
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:13:57.653999 IP 10.1.1.3.ssh > 10.1.1.2.60442: Flags [P.], seq 2265683999:2265684099, ack 3711911807, win 90, length 100
0x0000: 4510 008c 446b 4000 4006 50f9 0a01 0103
0x0010: 0a01 0102 0016 ec1a 870b 981f dd3f 477f
0x0020: 5018 005a a576 0000 1810 f435 f028 ef1e
1 packets captured
1 packets received by filter
0 packets dropped by kernel """
b = re.findall(r"(?: \w\w\w\w){8}", a)
# b = [' 4510 008c 446b 4000 4006 50f9 0a01 0103', ' 0a01 0102 0016 ec1a 870b 981f dd3f 477f', ' 5018 005a a576 0000 1810 f435 f028 ef1e'] c = re.findall(r"> (\d+.\d+.\d+.\d+)", a)
# c = ['10.1.1.2'] d = re.findall(r"(\d+\.\d+\.\d+\.\d+).+> (\d+\.\d+\.\d+\.\d+)", a)
# d = [('10.1.1.3', '10.1.1.2')] e = re.findall(r"( \w\w\w\w){8}", a)
# e = [' 0103', ' 477f', ' ef1e'], 每列最后一个。
官方文档:
http://docs.python.org/2/library/re.html
python正则表达式入门的更多相关文章
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...
- 转载 Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 转载 Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写.转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式 ...
- python正则表达式入门篇
文章来源于:https://www.cnblogs.com/chuxiuhong/p/5885073.html Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. ...
- Python 正则表达式-OK
Python正则表达式入门 一. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具, 拥有自己独特的语法以及一个独立的处理引擎, 效率上 ...
- Python爬虫入门之正则表达式
在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...
- Python爬虫入门七之正则表达式
在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...
- 转 Python爬虫入门七之正则表达式
静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...
随机推荐
- Spring MVC学习总结。
公司项目用的Spring MVC.顺便学习学习. 其实框架并没有想象中的复杂.尤其对于初学者,总觉得SSH是一些很复杂的东西似的.其实对初学者来说能够用这些框架就足够了.在公司里也是,基本功能会用了就 ...
- 【HDOJ】2425 Hiking Trip
优先级队列+BFS. #include <iostream> #include <cstdio> #include <cstring> #include <q ...
- HDU 5396 Expression(DP+组合数)(详解)
题目大意: 给你一个n然后是n个数. 然后是n-1个操作符,操作符是插入在两个数字之间的. 由于你不同的运算顺序,会产生不同的结果. 比如: 1 + 1 * 2 有两种 (1+1)*2 或者 ...
- 数据结构(主席树):COGS 2211. 谈笑风生
2211. 谈笑风生 ★★★★ 输入文件:laugh.in 输出文件:laugh.out 简单对比时间限制:3 s 内存限制:512 MB [问题描述] 设T 为一棵有根树,我们做如下 ...
- Linux下动态库的使用
1.生成动态库: gcc -fPIC -shared -o libdemo.so demo.c 考虑程式库major的升级会破坏兼容性:而minior的升级则可能不会,一般建议用以下方式来生成动态库. ...
- 数据结构——POJ 1686 Lazy Math Instructor 栈的应用
Description A math instructor is too lazy to grade a question in the exam papers in which students a ...
- [基础] C++与JAVA的内存管理
在内存管理上(总之一句话——以后C++工程,一定要用智能指针!) 1.同是new一个对象,C++一定得手动delete掉,而且得时刻记住能delete的最早时间(避免使用空指针).JAVA可以存活于作 ...
- poj 3608 旋转卡壳求不相交凸包最近距离;
题目链接:http://poj.org/problem?id=3608 #include<cstdio> #include<cstring> #include<cmath ...
- Android少量数据保存之SharedPreferences接口实例
SharedPreferences数据保存主要是通过键值的方式存储在xml文件中 xml文件在data/此程序的包名/XX.xml 格式 <?xml version='1.0' encoding ...
- [置顶] Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)
无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个 ...