前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python杂谈(1)——正则表达式常用操作符

Python杂谈(1)——正则表达式常用操作符

作者头像
背雷管的小青年
发布2020-06-09 15:28:03
4700
发布2020-06-09 15:28:03
举报
文章被收录于专栏:技术开发——你我他

代码语言:javascript
复制
操作符
.           表示任何单个字符
[]          字符集,对单个字符给出取值范围     [abc]表示a、b、c,[a-z]表示a-z单个字符
[^]         非字符集。对单个字符给出排除范围    [^abc]表示非a或b或c的单个字符
*           前一个字符的0次或者无限次的扩展    abc*表示ab、abc、abcc、abcccc等等
+           前一个字符的1次或者无限次的扩展     abc+表示 abc、abccc、abcc、abccccc等
?          前一个字符的0次或者1次扩展           abc?表示 ab、abc
|           左右表达式中的任意一个               abc|def表示abc、def
{m}         扩展前一个字符m次                   ab{2}c表示abbc
{m,n}       扩展前一个字符m至n次(含n)         ab{1,2}c表示abc、abbc
^           匹配字符串开头                     ^abc表示abc在一个字符串的开头
$           匹配字符串结尾                     abc$表示abc在一个字符串的结尾
()          分组标记内部只能使用|操作符          (abc)表示abc ,(abc|def)表示abc、def
\d          数字,等价于[0-9]
\w          单词字符,等价于[A-Za-z0-9_]     表示字符小写大写的a-z 和数字0-9以及下划线_

^-?\d+$         整数形式的字符串
^[0-9]*[1-9][0-9]*$     正整数形式的字符串
[1-9]\d{5}              中国境内邮政编码,6位
[\u4e00-\u9fa5]         匹配中文字符
\d{3}-\d{8}|\d[4]-\d{7}

\d+.\d+.\d+.\d+              --> IP地址  低配版
\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}      -->   中配版
0-99            100-199     200-249     250-255
[1-9]?\d        1\d{2}      2[0-4]\d    25[0-5]
([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5].){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])  -->匹配ip地址(完整版)

看不清文本,请复制后到文本中观看,谢谢合作!

python中re使用最小匹配操作符

代码语言:javascript
复制
   *?前一个字符0次或无限次扩展,最小匹配
   +?前一个字符1次或无限次扩展,最小匹配
   ??前一个字符0次或一次的扩展,最小匹配
   {m,n}? 扩展前一个字符m至n次(含n),最小匹配

python中re语法

代码语言:javascript
复制
import re
#在一个字符串中搜索匹配正则表达式的第一个位置返回match对象
match = re.search(r'[1-9]\d{5}','BIT 100081')
if match:
    print(match.group(0))

#从一个字符串的开始位置起匹配正则表达式,返回match对象
match1 = re.match(r'[1-9]\d{5}','100081 BIT')
if match1:
    print(match1.group(0))

#搜索字符串,以列表类型返回全部能匹配的子串
ls = re.findall(r'[1-9]\d{5}','BIT100081 TSU100084')
print(ls)

#将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
split = re.split(r'[1-9]\d{5}','BIT100081 TSU100084')
print(split)
#   maxsplit=1只匹配第一个位置
split1 = re.split(r'[1-9]\d{5}','BIT100081 TSU100084',maxsplit=1)
print(split1)

#搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素都是match对象
for m in re.finditer(r'[1-9]\d{5}','BIT100081 TSU100084'):
    if m:
        print(m.group(0))

#在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

print(re.sub(r'[1-9]\d{5}',':zipcode','BIT100081 TSU100084'))

python中re的match对象

代码语言:javascript
复制
import re
#search表示匹配一次的结果
m = re.search(r'[1-9]\d{5}','BIT100081 TSU100084')
print(m.string)
print(m.re)         #正则表达式
print(m.pos)        #起始位置
print(m.endpos)     #结束位置
print(m.group(0))   #查看匹配的信息   一般都在group(0)中
print(m.start())    #匹配的原始位置
print(m.end())      #匹配的终点位置
print(m.span())     #查看两个位置的二元关系

python中re的贪婪匹配

代码语言:javascript
复制
import re
match = re.search(r'PY.*N','PYANBNCNDN')
#re库默认采用贪婪匹配,即输出匹配最长的子串
print(match.group(0))
#最小匹配
match1 = re.search(r'PY.*?N','PYANBNCNDN')
print(match1.group(0))

声明:我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=23z6dnotw0skk

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python中re使用最小匹配操作符
  • python中re语法
  • python中re的match对象
  • python中re的贪婪匹配
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档