概念
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
简介
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
常用符号及功能
PS 以下绿色为输出结果
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 30 19:59:23 2018
正则表达式——练习
@author: Linaom
"""
import re
'''
引入包
'''
s=r'ABC\-001'
re.match(r'^\d\-\d$','010-12345') #yes
re.match(r'^\d\-\d$','010 12345') #none
#成功匹配返回内容
re.match(r'^\d\-\d$','010-12345')
Out[11]:
"""
切分字符串
"""
'a b c'.split(' ') #无法识别连续空格
Out[14]: ['a', 'b', '', 'c']
re.split(r'\s+','a b c') #无论有多少空格都可以识别
Out[16]: ['a', 'b', 'c']
re.split(r'[\s\,]+','a,b, c d')
re.split(r'[\s\,\;]+','a,b;; c d')
"""
分组failing
"""
m =re.match(r'^(\d)-(\d)$','010-12345') #用括号定义组
m.group()
Out[53]: '010-12345'
m.group(0)
m.group(1)
Out[55]: '010'
m.group(2)
t='19:05:30' #时间
m=re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$',t)
m.group()
Out[50]: '19:05:30'
"""
贪婪匹配
"""
re.match(r'^(\d+)(0*)$','102300').groups() #默认贪婪匹配
Out[58]: ('102300', '')
re.match(r'^(\d+?)(0*)$','102300').groups() #非贪婪匹配
Out[59]: '102300'
"""
编译
"""
import re
re_phonenum = re.compile(r'^(\d)-(\d)$')
re_phonenum.match('010-123456').groups()
Out[64]: ('010', '123456')
Python 学习之旅
领取专属 10元无门槛券
私享最新 技术干货