Python正则表达式匹配各种标准形式整理

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

正则表达式链接网址

匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^\s*|\s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注:表单验证时很实用

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,} 评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]\d{5}(?!\d) 评注:中国邮政编码为6位数字

匹配身份证:\d{15}|\d{18} 评注:中国的身份证为15位或18位

匹配ip地址:\d+\.\d+\.\d+\.\d+ 评注:提取ip地址时有用

匹配特定数字: ^[1-9]\d*$    //匹配正整数 ^-[1-9]\d*$   //匹配负整数 ^-?[1-9]\d*$   //匹配整数 ^[1-9]\d*|0$  //匹配非负整数(正整数 + 0) ^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0) ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0) ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0) 评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串: ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 ^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端布道

JavaScript之常用的正则表达式

校验数字 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|...

28860
来自专栏Java面试笔试题

Java中有几种类型的流?

字节流和字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Writer。在java.io 包中还有许多其他的流,主...

12920
来自专栏Java技术分享

xml解析技术概述和使用Jaxp对xml文档进行dom解析

用dom和sax对xml文档进行解析,可以使用已开发的xml解析开发包,我们直接调用即可。xml解析开发包有:Jaxp(最差)、Jdom(一般)、dom4j(最...

23880
来自专栏个人随笔

Java 持久化操作之 --io流与序列化

1)File类操作文件的属性 1.File类的常用方法 ? 1. 文件的绝对完整路径:getAbsolutePath() 文件名:getName() 文件相对路...

30490
来自专栏Android Note

介绍Kotlin第二部分(翻译篇)

15340
来自专栏Android群英传

Kotlin Primer·类与对象(上)

10320
来自专栏10km的专栏

fastjson:javabean按字段(field)序列化存储为Map并反序列化改进

需求说明 最近的项目应用到redis数据库,需要将java bean存储在redis数据库。因为需要对数据库中的某个字段进行修改,所以在redis上不能用简单的...

25780
来自专栏10km的专栏

fastjson:javabean按字段(field)序列化存储为Map并反序列化

大部分json工具对java对象整体序列化都提供了简单的调用方式,以fastjson为例: Model model = new Model(); String ...

40650
来自专栏机器学习算法与Python学习

笔记 | 史上最全的正则表达式

原文:http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html 点击文末阅读原文即可 很多不太懂正...

347110
来自专栏钟绍威的专栏

Properties+重温Map+本地计数器Map方法Properties的方法用Properties的好处

昨天想写一个记账本,发现并不能把项目名称与内容关联起来,于是乎我想到了map,可是又不知道map储存到文件中又怎么读出来,幸好今天遇到了properties ...

21570

扫码关注云+社区

领取腾讯云代金券