正则表达式

以下是正则表达式常见用法

\d:一个数字

\w:一个字母或数字

.:任意字符

*:任意个字符(包括0个)

+:至少一个字符

?:0个或1个字符

{n}:n个字符

{n,m}:n-m个字符

\s:一个空格(也包括Tab等空白符)

[0-9a-zA-Z_]:一个数字、字母或者下划线

[0-9a-zA-Z_]+:至少由一个数字、字母或者下划线组成的字符串,比如’a100’,‘0_Z’,'Py3000’等等

[a-zA-Z_][0-9a-zA-Z_]*:由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量

[a-zA-Z_][0-9a-zA-Z_]{0, 19}:变量的长度是1-20个字符(前面1个字符+后面最多19个字符)

(P|p)ython:‘Python’或者’python’

^:行的开头,^\d表示必须以数字开头。

$:行的结束,\d$表示必须以数字结束。

py也可以匹配’python’,但是加上^py$就变成了整行匹配,就只能匹配’py’了。

贪婪匹配

re.match(r’^(\d+)(0*)$’, ‘102300’).groups()
(‘102300’, ‘’)
由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。

必须让\d+采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0匹配出来,加个?就可以让\d+采用非贪婪匹配:

re.match(r’^(\d+?)(0*)$’, ‘102300’).groups()
(‘1023’, ‘00’)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值