Python正则表达式
来源:互联网 发布:杭州贰贰网络 编辑:程序博客网 时间:2024/06/02 01:18
本文档原文来自:http://www.imooc.com/learn/550
- 正则表达式的概念
- python的第一个正则表达式
- Python正则表达式的基本语法
正则表达式的概念
1. 使用单个字符串来描述匹配一系列符合某个语法规则的字符串;2. 是对字符串操作的一种逻辑公式;3. 应该场景:处理文本和数据;4. 正则表达式的过程:依次拿出表达式和文本进行比较操作,如果每一个字符都匹配成功,则成功,否则匹配失败
python的第一个正则表达式
**import re**: Python正则表达式模块re.compile(字符串模板)pattern.match(被匹配的字符串)字符串模板-->Pattern-->Match-->Result
import re str = 'Hello python' pa_1 = re.compile(r'Hello')#前面的r表示匹配模板的字符串是元字符串,这样就生成了一个pattern的实例 ma = pa_1.match(str)#ma是一个match对象 print ma_1.group()#返回匹配到的字符串 print ma_1.span()#返回被匹配字符串在原字符串的索引位置 pa_2 = re.compile(r'hello', re.I)#表示忽略大小写 ma = pa_2.match(str)#此时str字符串无论包含大写字符还是小写字符都会被匹配出来
注意点:
- 最好使用元字符串‘r’
- 最好生成一个pattern对象去match字符串
Python正则表达式的基本语法
- . 匹配任意字符(除了\n)
- […] 匹配字符集
>>> ma = re.match(r'[abc]', 'a')>>> ma.group()a>>> ma = re.match(r'[abc]', 'd')>>> ma #结果显示为空,说明ma没有匹配到正确的结果>>> ma = re.match(r'[a-z]', 'd')>>> ma.group()d #[a-z]表示匹配a-z的任何字符>>> ma = re.match(r'[a-zA-Z]', 'A')>>> ma.group()A>>> ma = re.match(r'[a-zA-Z0-9]', '9')>>> ma.group()9
- \d / \D 匹配数字/非数字
- \s / \S 匹配空白/非空白字符
- \w / \W 匹配单个字符[a-z A-Z 0-9] / 非单个字符
- * 匹配前一个字符0次或者无限次
>>> ma = re.match(r'[A-Z][a-z]', 'Aa')Aa>>> ma = re.match(r'[A-Z][a-z]', 'A')>>> ma #结果显示为空,说明ma没有匹配到正确的结果>>> ma = re.match(r'[A-Z][a-z]*', 'A') #匹配字符集[a-z]的0个或者无限个字符>>> ma.group()A>>> ma = re.match(r'[A-Z][a-z]*', 'Abcdefg') #匹配字符集[a-z]的0个或者无限个字符>>> ma.group()Abcdefg>>>
- + 匹配前一个字符1次或者无限次
>>> ma = re.match(r'[_a-zA-Z]+[\w]*', '_http123') #表示匹配前一个字符集中的字符1次或者无限次,后一个字符集中的字符0次或者无限次>>> ma.group()_http123
- ? 匹配前一个字符0次或者1次
>>> ma = re.match(r'[1-9]?[0-9]', '90')>>> ma.group()90>>> ma = re.match(r'[1-9]?[0-9]', '09')>>> ma.group()0
- {m} / {m,n} 匹配前一个字符m次或者m到n次
#可以用来匹配一个有效的邮箱 >>> ma = re.match(r'[a-zA-Z0-9]{6}', 'ABC123') #表示出现字符集中的字符必须6次>>> ma.group()abc123>>> ma = re.match(r'[a-zA-Z0-9]{6}', 'ABC12')>>> ma #结果显示为空,说明ma没有匹配到正确的结果>>> ma = re.match(r'[a-zA-Z0-9]{6}@qq.com', 'abc123@qq.com')>>> ma.group()abc123@qq.com>>> ma = re.match(r'[a-zA-Z0-9]{6,10}@qq.com', 'abcd1234@qq.com') #出现字符集中的字符6到10次>>> ma.group()abcd1234@qq.com
- *? / +? / ?? 匹配模式为非贪婪模式(尽可能少匹配字符)
>>> ma = re.match(r'[0-9][a-z]*', '2ba')>>> ma.group()2ba>>> ma = re.match(r'[0-9][a-z]*?', '2ba')>>> ma.group()2
阅读全文
0 0
- python正则表达式学习
- c++正则表达式,python
- Python正则表达式(一)
- python的正则表达式
- Python正则表达式
- Python初学-正则表达式
- 正则表达式与python
- python正则表达式学习
- python正则表达式学习
- python正则表达式学习
- python正则表达式
- Python - 正则表达式
- Python正则表达式
- python正则表达式
- Python正则表达式指南
- Python正则表达式指南
- Python 正则表达式指南
- python 正则表达式
- 搭建SolrCloud集群Could not find or load main class org.apache.solr.cloud.ZkCLI
- 约瑟夫,嘿嘿,你被ko了 。还有一点小感悟
- 图像类型的转换
- 观察者模式应用场景实例
- Oracle12C--操作类中的其他结构(65)
- Python正则表达式
- 从尾到头打印链表
- python正则表达式
- 班级成员表
- 【转】Linux下文件属性(drwxr-xr-x)详解以及(-rwxrwxrwx=777)
- 【多线程简单实例】_beginthreadx实现
- 第一周集训小结
- C++类和对象及其默认成员函数
- 矩阵和向量numpy