一、正则表达式主要元素

1)^  $ * ? + {3} {3,} {3,6} |

2) [] [^] [a-z] .

3) \s \S \w \W

4)[\u4E00-\u9FA5] () \d

先看看单个字符含义以及示例

字符 含义  
^ 以开头什么,如:^1[3456789]\d{9},以1开头第二位可以是3,4,5,6,7,8,9中任意一位,最后为9位数据  
$ 代表以什么结尾,如提起身份证以X为结尾的子字符串,(\d{17}X)$  
* 代表任意多个,可以没有,可以是n多个。  
正则默认是从右贪婪匹配,如:

abababb取出两个b之间的字符:.*a(.*)a.* 输出结果: 因为从右边匹配,第一个b和第二个b直接没有东西,(.*)表示任意字符任意多个。用:.*?b(.*)b.* 输出结果为:abab 加了问号不做贪婪匹配,是从左到右找最长的子串。从做左边第一个b开始到最后一个b结束中间的字符
+ +号代表大于1个,比如abababb用 .*a(.*)a.* 匹配出来为空,想匹配至少中间有一个字符的,可以用:

.*b(.+)b.* 匹配结果为:ab
{3} 代表等于3位,如:

abababb,匹配正则:
.*b(.{3})b. 匹配结果为:aba。
{3,} 代表大于3位

abababb,匹配正则:
.*b(.{3,})b.* 匹配结果为:abab。
 
import reline = "abababb"
matchObj = re.match(r'.*b(.{3,})b.*', line)if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")matchObj.group(1) :  abab
{3,6}

代表大于3位,小于6位  .*b(.{3,6})b.*  匹配结果为:abab。

用.*b(.{5,6})b.* 搜索输出无

import reline = "abababb"
matchObj = re.match(r'.*b(.{3,6})b.*', line)if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")matchObj.group(1) :  abab
matchObj = re.match(r'.*b(.{5,6})b.*', line)if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")No match!!
|

或的关系 如:^1[3456789]\d{9},以1开头第二位可以是3,4,5,6,7,8,9中任意一位,最后为9位数,

也可以用:^1[3|4|5|6|7|8|9]\d{9}

 
import reline = "15110154567"
matchObj = re.match(r'(^1[3456789]\d{9})', line)if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")
import reline = "15110154567"
matchObj = re.match(r'(^1[3|4|5|6|7|8|9]\d{9})', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")
[] 代表【】中的任意一个如手机号:^1[3456789]\d{9},  
[^] 代表只要不是括号中的都满足条件。如手机号码为:

15110154567

用 ^1[^3456789]\d{9} 输出为无,

用 ^1[^3|4|5|6|7|8|9]\d{9} 输出为无,

import reline = "15110154567"
matchObj = re.match(r'(^1[^3|4|5|6|7|8|9]\d{9})', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")
import reline = "15110154567"
matchObj = re.match(r'(^1[^3456789]\d{9})', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")
[a-z] 代表区间。如[a-z],[A-Z],[0-9],[\u4E00-\u9FA5]汉字区间编码,如手机号:^1[3456789]\d{9},^1[3456789][0-9]{9}都可以,[0-9]相当于\d,也可以匹配字符,汉字等区间。
line = "15110154567"
matchObj = re.match(r'(^1[3456789][0-9]{9})', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))
else:print("No match!!")
. 代表任意字符,也可以是空,如示例:输出为空
import reline = ""
matchObj = re.match(r'.*', line)
if matchObj:print("matchObj.group() : ", matchObj.group())else:print("No match!!")
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。如右边输出结果为换行符,
import reline = " " \"d1"
matchObj = re.match(r'.*?(\s+).*', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))else:print("No match!!")
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。左右边输出结果为:dl。
import reline = " " \"d1"
matchObj = re.match(r'.*?(\S+).*', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))else:print("No match!!")
\w

\w 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字,如右边用非贪婪匹配输出为:d1z


import reline = "d1z~~~,,,^^^_ =+哈哈哈"
matchObj = re.match(r'.*?(\w+).*', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))else:print("No match!!")matchObj.group(1) :  d1z
\W

\W 匹配特殊字符,即非字母、非数字、非汉字、非_

用非贪婪匹配输出为:  ~~~,,,^^^

import reline = "d1z~~~,,,^^^_ =+哈哈哈"
matchObj = re.match(r'.*?(\W+).*', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))else:print("No match!!")matchObj.group(1) :  ~~~,,,^^^
[\u4E00-\u9FA5] 匹配汉字 如右边输出结果:matchObj.group(1) :  哈哈哈

import reline = "d1z~~~,,,^^^_ =+哈哈哈"
matchObj = re.match(r'.*?([\u4E00-\u9FA5]+).*', line)
if matchObj:print("matchObj.group(1) : ", matchObj.group(1))else:print("No match!!")
() 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。  
\d 代表数据,用\d 或者 [0-9]  

综合上述:

手机号码正则:^1[3456789]\d{9}  以1+3,4,5,6,7,8,9的手机号。需要可以再加

座机号码正则:\d{3}[-|]{0,1}\d{8}  两种格式:010-87835711或者01087835711

邮箱正则:。。。

身份证号码正则:。。。

网站正则:。。。

写累了。。。。如有问题留言,看到第一时间回复。

正则表达式,python正则表达式相关推荐

  1. 正则表达式 - Python 正则表达式 学习笔记 最全整理

    正则表达式 regular expression,用于匹配字符串中字符组成的方法,"用有限的符号表达无限的序列". JavaScript 正则表达式语法如下: /xxx/gi 两条 ...

  2. Python 正则表达式各种特殊符号 重点

    Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. r ...

  3. python 正则表达式 re.compile() 的使用

    1 re.compile() 的解释: python 正则表达式 re.compile() 将正则表达式编译成一个Pattern规则对象,单独使用compile 没有意义,他生成的是一个规则,需要ma ...

  4. python正则表达式_Python正则表达式简记和re库!

    正则表达式是定义搜索模式的字符序列.通常这种模式被字符串搜索算法用于字符串上的"查找"或"查找和替换"操作,或者用于输入验证. 1. 正则表达式的语法 . 表示 ...

  5. python 正则表达式方法_Python正则表达式一: 基本使用方法

    学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...

  6. Python正则表达式,看这一篇就够了

    作者 | 猪哥 来源 | 裸睡的猪(ID: IT--Pig) 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中 ...

  7. Python 正则表达式

    最近研究Python爬虫,很多地方用到了正则表达式,但是没好好研究,每次都得现查文档.今天就专门看看Python正则表达式.本文参考了官方文档 re模块. 模式 首先正则表达式的语法我就不说了,这玩意 ...

  8. Python正则表达式初识(二)

    前几天给大家分享了[Python正则表达式初识(一)],介绍了正则表达式中的三个特殊字符"^"."."和"*",感兴趣的伙伴可以戳进去看看, ...

  9. python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单

    处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...

  10. python正则表达式re.sub用法

    python正则表达式re.sub用法 https://cloud.tencent.com/developer/article/1382055 python正则表达式re.sub用法 全面的 http ...

最新文章

  1. 2位图灵奖得主、7位院士等一众AI大佬云集共议数字化转型 | CNCC 2021
  2. 船长带你看书——《selenium2 python 自动化测试实战》(2)浏览器操作
  3. java 消息队列_java消息队列
  4. sublime Text3 设置多个浏览器预览
  5. JDK动态代理实现原理--转载
  6. 姗姗来迟的Ubuntu版MX4,已经没了当年的初衷
  7. bzoj4025: 二分图
  8. JAVA获取Classpath根路径的方法
  9. ILdasm 的使用方法
  10. 「斑愿称为最肝」小狮子前端知识食谱 / 生日之际,好运分享 / 秋招和你手摸手入大厂【史上最全指北】 | CSDN技术征文
  11. 梯度提升决策树GBDT
  12. Safari 神器,手机平板都能用,我们找到了 14 个超实用浏览器插件
  13. Vmware workstation 安装教程
  14. RK3399 Thermal (温度控制)
  15. 一篇文章看明白 Android 系统启动时都干了什么
  16. Java实现 蓝桥杯VIP 算法提高 分苹果
  17. Python 3基础语法知识点都在这里了,如果还不能入门就不能怪我了
  18. 人脸识别门禁的那些“坑”,你中招了吗?
  19. 身份证OCR实名认证接口
  20. 为什么需要每年重新签发SSL证书?

热门文章

  1. 【算法理论】bin packing 装箱问题
  2. N圆最密堆积、最小外接正方形的matlab求解(二维、三维等圆Packing 问题)
  3. 【go-jira】go根据jql获取jira数据,包括total及bug的平均未解决时间
  4. 无人机在精准农业中的研究综述
  5. Python Web自动化测试学习-PO模型在自动化测试中的应用(2)
  6. centos7 安装anaconda3,notebook,解决matplotlib 中文乱码
  7. 基于Python的马尼拉PC端桌游设计与实现
  8. win7计算机总是卡住,win7系统电脑经常死机的几种原因及修复方法
  9. 直播预告 | 硅步机器人携手Shadow Robot原厂技术大咖 深度解析遥操作系统
  10. Visual Studio 2022 的下载