?  匹配零次或一次前面的分组

*   匹配零次或多次前面的分组

+  匹配一次或多次前面的分组

{n} 匹配n次前面的分组

{n,} 匹配n次或更多次前面的分组

{,m} 匹配零次到m次前面的分组

{n,m} 匹配至少n次,至多m次前面的分组

{n,m}?或*?或+? 对前面的分组进行非贪心匹配

^spam 意味着字符必须以spam开始

spam$ 意味着字符必须以spam结束

. 匹配所有的字符,换行符除外

\d,\w和\s 分别匹配数字,单词和空格

\D,\W和\S 分别匹配出数字,单词和空格外的所有字符

[abc] 匹配方括号内的任意字符。(例如abc)

[^abc] 匹配不在方括号内的任意字符

常用的字符分类

\d 0~9的任意数字
\D 除0~9外的任意数字

\w 任何字母,数字,下划线字符(可以认为是匹配“单词”字符)

\W 除字母,数字或下划线字符(可以认为是匹配“单词”字符)

\s 空格,制表符和换行符(可以认为是匹配“空白”字符)

\S 除空格,制表符和换行符以外的任何字符

--------摘自《Python编程快速上手-让繁琐的功能自动化》

书上有一个验证邮箱和电话号码的例子,一并贴上来

#添加复制和正则表达式的模块
import pyperclip,re # 创建电话的正则表达式
phoneRegex = re,compile(r'''(
(\d{3)|\(\d{3}\))?
(\s|-|\.)?
(\d{3})
(\s|-|\.)
(\d{4})
(\s*(ext|x|ext\.)\s*(\d{2,5}))?
)''',re.VERBOSE) # 创建邮箱的正则表达式
emailRegex = re.compile(r'''(
[a-zA-Z0-9._%+-]+
@
[a-zA-Z0-9.-]+
(\.[a-zA-Z]{2,4})
)''',re.VERBOSE) # 在粘贴板中找到相关的文本数据
text = str(pyperclip.paste)
matches = []
for groups in phoneRegex.findall(text):
phoneNum = '-'.join('-').join([groups[1],groups[3],groups[5]])
if groups[8] != "":
phoneNum += "x"+ groups[8]
matches.append(phoneNum)
for groups in emailRegex.findall(text):
matches.append(groups[0]) # 将整理好的字符输出
if(len(matches) > 0 ):
pyperclip.copy('n'.join(matches))
print('Copied to cli[board:')
print('\n'.join(matches))
else:
print('no phone numbers or email addresses found')

代码示例

Python中常见的正则表达式符号的更多相关文章

  1. Python中常见的报错名称

    Python中常见的报错名称 1.SyntaxError 语法错误.看看是否用Python关键字命名变量,有没有使用中文符号,运算符.逻辑运算符等符号是不是使用不规范. 2.IndentationEr ...

  2. python中时间日期格式化符号

    python中时间日期格式化符号: import time print(time.strftime('%Y%H%M%S', time.localtime())) 运行结果: 2016092308 %y ...

  3. Python中常见字符串去除空格的方法总结

    Python中常见字符串去除空格的方法总结 1:strip()方法,去除字符串开头或者结尾的空格>>> a = " a b c ">>> a.s ...

  4. Python中常见的异常总结

    Python中常见的异常总结 当Python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常. 一.异常错误    a.语法错误     错误一:     if     ...

  5. python中常见的错误

    python中常见的错误   1.IndentationError: unindent does not match any outer indentation leve 众所周知,Python语法要 ...

  6. python中常见的报错信息

    python中常见的报错信息 在运行程序时常会遇到报错提示,报错的信息会提示是哪个方向错的,从而帮助你定位问题: 搜集了一些python最重要的内建异常类名: AttributeError:属性错误, ...

  7. Python 中常见错误总结

    IndentationError: unexpected indent Python 中强制缩进,, IndentationError: unexpected indent 缩进错误 这类错误非常常见 ...

  8. Python中常见的数据类型总结

    Python提供多种数据类型来存放数据项集合,主要包括序列(列表list和元组tuple),映射(如字典dict),集合(set),下面对这几种一一介绍: 一 序列 1.列表list 列表是一种有序的 ...

  9. Python中re操作正则表达式

    在python中使用正则表达式 1.转义符 正则表达式中的转义: '\('表示匹配小括号 [()+*/?&.] 在字符组中一些特殊的字符会现出原形 所有的\s\d\w\S\D\W\n\t都表示 ...

随机推荐

  1. Python 进阶 异步async/await

    一,前言 本文将会讲述Python 3.5之后出现的async/await的使用方法,我从上看到一篇不错的博客,自己对其进行了梳理.该文章原地址https://www.cnblogs.com/dhcn ...

  2. 浅析对spring中IOC的理解

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  3. git提交代码时,Unstaged changes如何过滤.class .log等文件

    在项目下创建一个.gitignore文件,内容如下: 可以在文件目录中加入这个文件,也可以在eclipse中项目下加入此文件 /target/表示忽略target文件夹下的内容 .class 表示忽略 ...

  4. Oracle debug

    执行慢的使用使用debug环境变量,可以收集详细的日志 rootcrs.pl/roothas.pl执行慢 参考如下文档设置debug环境变量,重现问题并收集详细日志. How to turn on r ...

  5. vue-devtools的安装与使用

    安装 vue.js devtools vue官方中文文档:http://www.uihtm.com/vue/v2/guide/index.html# 安装 vue.js devtools 前提是Goo ...

  6. Python 写了个小程序,耗时一天,结果才100多行

    from selenium import webdriver import selenium.webdriver.support.ui as ui from selenium.webdriver.co ...

  7. MongoDB在Windows系统下的安装和启动

    版本选择MongoDB的版本命名规范如:x.y.z: y为奇数时表示当前版本为开发版,如:2.3.0.2.1.1: y为偶数时表示当前版本为稳定版,如:2.0.1.2.2.0: 目前官网上最新的版本为 ...

  8. asp.net 经常用到需要判断文本框是否输入的数字是小数,有无正负,几位小数,可以封装一起判断

    /// <summary> /// 判断是否为小数点数字且带符号 /// </summary> /// <param name="symbol"> ...

  9. Python练习:含参数的脚本示例

    首先准备一个example.csv文件,如下: 编写脚本test.py ,实现传入参数,读取example.csv文件,并将其保存为另一个文件, #  含参数的脚本,读取一个文件,并另保存一个文件im ...

  10. Python实现图像直方图均衡化算法

    title: "Python实现图像直方图均衡化算法" date: 2018-06-12T17:10:48+08:00 tags: [""] categorie ...