Python中常见的正则表达式符号
2024-08-26 17:46:20
? 匹配零次或一次前面的分组
* 匹配零次或多次前面的分组
+ 匹配一次或多次前面的分组
{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')
代码示例
最新文章
- <;a>;与文件下载-(下载一)
- JavaScript算法(归并排序与快速排序)
- LINQ系列:LINQ to SQL Where条件
- 客户端安全-csrf
- 安卓中自定义并使用Volley框架请求网络
- windows 我的电脑右键 无法打开管理窗口
- caffe 无GPU 环境搭建
- Maven打包部署脚本
- 把 图片 资源文件 编译到dll
- break point
- python yaml使用
- OSChina 的URL类的源代码重写过程
- starling性能优化
- @NotNull vs @Column(nullable = false)
- LeetCode---------Add Two Numbers 解法
- mybatis快速入门(二)
- 【Python3爬虫】常见反爬虫措施及解决办法(二)
- docker时间与系统时间同步的问题
- angular框架下的跨域问题(获取天气数据)
- win2012R2打Windows8.1-KB2919355 问题
热门文章
- vue/cli3 配置相对路径
- Oracle SQL 部分特殊字符转义及escape的用法
- 【Idea】-NO.163.Idea.2 -【How to show the horizontal scroll?】
- Azure基础(二)- 核心云服务 - Azure简介
- 并发编程实战1-chap1-2-斗者6星
- weixin://connectToFreeWifi/协议如何跳转到微信客户端打开在wifi指定任意网页?
- 查找字符在字符串中第N次出现的位置
- java学习之成员内部类
- 【Linux】Jenkins安装(二)
- 理解linux网络管理命令