正则表达式

正则表达式
regular expression RE regex

一 定位
简洁的一组的字符串表达式
通用字符串表达框架
判断字符串特征归属

二 正则表达式常用操作符

三 语法实例

P(Y|YT|YTH|YTHO)?N ‘PN’,’PYN’,PYTN’,PYTHN’,PYTHON’
PYTHON+ ‘PYTHON’,PYTHONN’PYTHONNN’…………………
PY[TH]ON ‘PYTON’,’PYHON’
PY[^TH]ON ‘PYaON’,’PY&ON’,’PY_ON’………………………
PY{:3}N ‘PN’,’PYN’,’PYYN’,’PYYYN’
注:{:3}表示拓展前一个字符0~3次

四 经典实例

NameAcademy
^[A-Za-z]+$26个字母组成的字符串
^[A-Za-z0-9]+$26个字母和数字组成的字符串
^-?\d+$任意整数型字符串
^[0-9][1-9][0-9]$正整数型字符串
[1-9]\d{5}邮政编码
[\u4e00-\u9fa5]中文字符

Re库使用
import re

一 正则表达式表示类型

raw string
表示为: r’text’
EG: r’[1-9]\d{5}’
r’\d{3}-\d{8}|\d{4}-\d{7}’
raw string是不包含对转移符再次转义的字符串
可以避免使用如’\’表示’\’

二 Re库主要功能函数

1. re.search(pattern,string,flags=0)

flages控制标记

EG

import re
match=re.search( r’[1-9]\d{5}’ , ‘BIT 10093’)
if match:
print ( match.group(0) )

10093

2. re.match( pattern,string,flags,flags=0 )

不同于re.search( ) ,re.match( )是从开始位置匹配
re.match( r’[1-9]\d{5}’ , ‘BIT 10093’ )不会匹配出结果

3. re.findall( pattern,string,flags=0 )

EG

ls = re.findall( r’[1-9]\d{5}’, ‘BIT 10081 TSU 10093’)
print ( ls )

[‘10081’, ‘10093’]

4. re.split ( pattern,string,maxsplit=0,flags=0 )

maxsplit: 最大分割数,剩余部分作为后一个元素输出

EG

re.split( r’[1-9]\d{5}’, ‘BIT 10081 TSU 10083’ )

[ ‘BIT’, ‘TSU’, ”]

re.split( r’[1-9]\d{5}’, ‘BIT 10081 TSU 10083’, maxsplit=1 )

[‘BIT’ , ‘TSU 10083’]

注意:maxsplit的数值决定了其割掉的段的数量

5. finditer( pattern, string, flags=0 )

EG

for m in re.finditer( r’[1-9]\d{5}’, ‘BIT 10081 TSU 10083’ ):
if m:
print( m.group (0) )

10081
10083

6. re.sub(pattern, repl, string, count=0, flags=0 )

repl: 替换匹配字符串的字符串
EG

re.sub( r’[1-9]\d{5}’, ‘:zipcode’ , ‘BIT 10081 TSU10083’ )

‘BIT :zipcode TSU :zipcode’

三 Re库的等价用法

regex = re.complie( pattern, flags=0 )

EG

regex = re.complie( r’[1-9]\d{5}’ )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值