python正则表达式

import re
正则表达式的常用操作符
.   :表示任何单个字符
[]  :字符集,对单个字符给出取值范围  [abc]表示a,,b,c[a-z]表示a到z的单个字符
[^] :非字符集,对单个字符给出排除范围  [^abc]表示非a或b或c的单个字符
*   :前一个字符扩展0次或无限次
+   :前一个字符扩展1次或无限次
?   :前一个字符0次或1次拓展
|   :左右表达式中的任意一个
{m} :拓展前一个字符m次
{m,n} :拓展前一个字符m至n
^  匹配字符串开头  ^abc表示abc在一个字符串的开头
$  匹配字符串结尾  abc$表示abc在一个字符串的结尾
() 分组标记
\d  数字,等价于【0-9】
\w  单个字符,等价于[A-Za-z0-9]
举例:
PY【^TH】?ON    'PYON'.  'PYAON.......
^[A-Za-z]+$  26个字符串组成的正则表达式
^-?\d+$    整数形式的字符串
\d{3}-\d{8}|\d{4}-\d{7}
正则表达式的常用函数
re.search()  #在一个字符串中匹配正则表达式的第一个位置
re.match()    #从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall()    #搜索字符串,以列表类型返回全部能匹配的字符串
re.split()      #将一个字符串按照正则表达式结果进行分割,返回列表类型
re.finditer()    #搜索字符串,返回一个匹配结果的迭代类型   每个迭代元素是match对象
re.sub()    #  在一个字符串中替换所有匹配正则表达式的子串,返回替换后字符串
re.search(pattern ,string,flags=0)
pattern:正则表达式的字符串
string :待匹配的字符串
flag:  正则表达式使用时的控制标记
flag:正则表达式使用时的控制标记
re.I  re.IGNORECASE  :忽略正则表达式的大小写
re.M  re.MULTILINE  : 正则表达式中的操作符能够将给定字符串的每行当做匹配的开始
re.split(pattern,string,maxsplit=0,flag=0)
pattern:正则表达式的字符串
string:待匹配字符串
maxsplit:最大分割数
flag :正则表达式使用时的控制标记
re.sub(pattern,repl,string,count=0,flags=0)
patter:正则表达式的字符串
repl:替换匹配字符串的字符串
string:待匹配字符串
举例:
import re
match=re.search(r'[1-9]\d{5}','BIT 100081')
if match:
    print(match.goup(0))

import re
match=re.match(r'[1-9]\d{5}','100081 BIt')
if match:
    match.group(0)

import re
ls=re.findall(r'[1-9\d{5}]','BIT100081  TSU100084')
ls

import re
re.split(r'[1-9]\d{5}','BIT1000081,TSU100084'maxsplit=2)


import re
for m in re.finditer(r'[1-9]\d{5}','BIT100081  TSU100084'):
    if m:
        print(m.group(0))
import re
re.sub(r'[1-9]\d{5}',':zipcode','BIT100081 TSU100081')
re库的两种用法
rst=re.search(r'[1-9]\d{5}','BIT100081')
以上的方法是函数式调用
面向对象用法,编译后多次操作
pat=re.compile(r'[1-9]\d{5}')
rst=pat.search('BIT100081')
regex=re.compile(pattern,flag=0)
将正则表达式的字符串形式编译成正则表达式对象
re库默认采用贪婪匹配,即输出匹配最长的子串
match=re.search(r'PY.*N','PYANBNCNDN')
match.group(0)
输出:PYANBNCNDN
最小匹配
match=re.search(r'PY.*?N','PYANBNCNDN')
match.group(0)
输出 PYAN
最小匹配操作符
*?  前一个字符0次或无限次的拓展,最小匹配
+?  前一个字符1次或无限次拓展   最小匹配
??  前一个字符0次或1次拓展,最小匹配
(m,n)? 拓展前一个字符m至n次(含n) 最小匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值