正则表达式

正则表达式(regex/RE)是一种文本模式,包括普通字符和特殊字符,它是使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

正则表达式最突出的特点就是简洁,即有“一行胜前言”的功效,尤其是在表达无穷字符串组时非常方便。正则表达式在文本处理中十分常用,表达文本类型的特征(病毒、入侵等),同时查找或替换一组字符串,匹配字符串的全部或部分。

正则表达式的使用:

编译:将符合正则表达式语法的字符串转换成正则表达式特征。可以认为编译后的特征与一组字符串是对应的,而编译前的正则表达式只是一个符合正则表达式语法的字符串。

PN

正则表达式:

PYN

P(Y|YT|YTH|YTHO)?N

PYTN

Regex = ‘P(Y|YT|YTH|YTHO)?N’

PYTHN

    编译

PYTHON

P = re.compile(regex)

正则表达式常用的符号:

·    表示任何单个字符;

[ ]  表示字符集,对单个字符给出取值范围,例如[abc]表示a,b,c;

[^] 表示非字符集,对单个字符给出排除范围,例如[^abc]表示非a或非b或非c的单个字符;

*    表示前一个字符0次或无限次扩展,例如abc*表示ab.abc.abcc等;

+   表示前一个字符1次或无限次扩展,例如abc+表示abc,abcc;

?    表示前一个字符0次或1次扩展,例如abc?表示ab,abc;

|     表示左右表达式任意一个,例如abc|def表示abc,def;

{m}  表示扩展前一个字符m次,例如ab{2}c表示abbc;

^ 表示匹配字符串开头,例如^abc表示abc且在一个字符串的开头;

$ 表示匹配字符串结尾,例如$abc表示abc且在一个字符串的结尾;

{m,n}  表示扩展前一个字符m至n次,例如ab{1,2}c表示abc,abbc;

( )  表示分组标记,内部只能使用操作符|,例如(abc)表示abc,(abc|def)表示abc,def;

\d 表示数字,等价于[0-9];

\w 单词字符,等价于[A-Za-z0-9]。


接下来介绍几个常见的正则表达式:

^[A-Za-z]+$表示用26个字母组成的字符串;

^-?\d+$表示整数形式的字符串;

^[0-9]*[1-9][0-9]*$表示正整数形式的字符串;

\d{6}可以表示中国境内的邮政编码;

[\u4e00-\u9fa5]表示匹配中文字符;

\d{3}-\d{8} | \d{4}-\d{7}表示中国境内的固定电话号码;

除此之外,正则表达式也可以用来表示比较复杂的字符串,比如IP地址。我们都知道IP地址分四段,每一段的最大值为255,为了表示0-255的值,正则表达式将其分为4段分别表示,如:

0-99:[1-9]?\d

100-199:1\d{2}

200-249:2[0-4]\d

250-255:25[0-5]

则IP地址可表示为:

(([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])




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值