python 正则表达式 前瞻_正则表达式 For Python

Manarola

正则表达式有很多流派,也有很多的特性,不同的语言支持度也是不一样的。本篇文章是写Python中的正则表达式的用法的,介绍了一些可用特性,也指出了某些特性是不支持的。

本篇文章仅为学习笔记,不对正则表达式做深入研究,只想用最短的时间入门正则。

实践是检验真理的唯一标准。你以为的并不是你以为的,如有问题还是要写一个例子用多个工具验证下最好。

字符组 [ ]

在同一位置可能出现的各种字符,也可以称之为字符集。

写法有很多种。有原始写法,然后是范围表示法,然后是排除型字符组,然后是字符组简记法,最后还有一个字符组运算(Python不支持)。

[3645970128] --> [0123456789] --> [0-9] --> \d

[0-9A-Za-z_] --> [\dA-Za-z_] --> \w

"-"用来表示范围 范围的确定依靠码值来确定,一般据ASCⅡ表值。

排除型字符组由脱字符"^"来指定,"^"排在第一位,紧靠在"["之后,需要排除的按上面写法写在"^"之后。

[^0-9] # 排除数字,也可以写成[^\d]

如果需要排除"-",则必须将"-"写在开头"^"之后,如果一定要写在后面,则必须用"\"转义。

字符组简记

说明

\d

数字(digit) [0-9]

\w

单词(word) [0-9A-Za-z_] 字母数字下划线

\s

空白(space) [ \t\r\n\f\v] 空格、制表符、回车、换行等显示空白字符

\D 、\W 、\S是与之对应的排除型字符组简记。

以上说的\d 、\w 、\s的匹配规则都是针对ASCⅡ编码规则而言的,也叫ASCⅡ匹配规则。在Unicode编码中,全角数字0、1、2之类的也算数字,也可以由\d匹配;中文字符也可以算是单词字符,由\w匹配;同样全角空格也由\s匹配。

Python3默认采用Unicode匹配规则,但也可以显示指定采用ASCⅡ匹配规则(表达式最开始用(?a)指定ASCⅡ模式)。

另外还有一个POSIX字符组(POSIX Character Class)。POSIX(Portable Operating System Interface for uniX),它是含有正则表达式规范的一系列规范。这种字符组只在java、php、ruby中支持,经过测试以及查阅资料并没有显示Python是支持的,不过也有可能是POSIX字符组需要变化一下才能使用,就像其他语言那样。

量词

以上说的都是匹配单个字符,如果多了怎么办。所以就出现了量词。

量词限定之前的元素的出现,这个元素可能是一个字符,也可能是一个字符组,还可以是一个表达式。

一般形式量词

说明

{n}

之前的元素必须出现n次

{m,n}

之前的元素最少出现m次,最多出现n次

{m,}

之前的元素最少出现m次,最高没有限制

{0,n}

之前的元素可以不出现,也可以出现,最多出现n次

常用量词

等价形式

说明

*

{0,}

可能出现,也可能不出现,出现次数没有上限

+

{1,}

至少出现1次,最多没有限制

?

{0,1}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值