正则表达式基础

概念

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

简介

正则表达式是对字符串(包括普通字符(例如,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 学习之旅

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180830G1UA0F00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券