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

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

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

{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')

代码示例

最新文章

  1. <a>与文件下载-(下载一)
  2. JavaScript算法(归并排序与快速排序)
  3. LINQ系列:LINQ to SQL Where条件
  4. 客户端安全-csrf
  5. 安卓中自定义并使用Volley框架请求网络
  6. windows 我的电脑右键 无法打开管理窗口
  7. caffe 无GPU 环境搭建
  8. Maven打包部署脚本
  9. 把 图片 资源文件 编译到dll
  10. break point
  11. python yaml使用
  12. OSChina 的URL类的源代码重写过程
  13. starling性能优化
  14. @NotNull vs @Column(nullable = false)
  15. LeetCode---------Add Two Numbers 解法
  16. mybatis快速入门(二)
  17. 【Python3爬虫】常见反爬虫措施及解决办法(二)
  18. docker时间与系统时间同步的问题
  19. angular框架下的跨域问题(获取天气数据)
  20. win2012R2打Windows8.1-KB2919355 问题

热门文章

  1. vue/cli3 配置相对路径
  2. Oracle SQL 部分特殊字符转义及escape的用法
  3. 【Idea】-NO.163.Idea.2 -【How to show the horizontal scroll?】
  4. Azure基础(二)- 核心云服务 - Azure简介
  5. 并发编程实战1-chap1-2-斗者6星
  6. weixin://connectToFreeWifi/协议如何跳转到微信客户端打开在wifi指定任意网页?
  7. 查找字符在字符串中第N次出现的位置
  8. java学习之成员内部类
  9. 【Linux】Jenkins安装(二)
  10. 理解linux网络管理命令