博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式
阅读量:3761 次
发布时间:2019-05-22

本文共 672 字,大约阅读时间需要 2 分钟。

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

\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’)

转载地址:http://sicpn.baihongyu.com/

你可能感兴趣的文章
JSON和AJAX
查看>>
web之监听器listener
查看>>
类加载器
查看>>
数据库设计
查看>>
Java虚拟机的内存分配和运行机制(粗谈)
查看>>
web开发之BaseServlet的使用
查看>>
初识Maven
查看>>
Maven分模块构建项目
查看>>
MyBatis初识
查看>>
MyBatis【进阶详解】
查看>>
面试题集锦(七)
查看>>
注解开发——Spring整合dao/service/web
查看>>
架构的演进
查看>>
Elastic-Job的基础使用
查看>>
策略过滤器的灵活性分析
查看>>
POI的使用
查看>>
Anaconda和PyCharm的下载、安装和配置
查看>>
Mockito单元测试简述
查看>>
GUAVA的常用方法汇总
查看>>
装饰器和门面设计模式介绍
查看>>