Python中常见的正则表达式符号
? 匹配零次或一次前面的分组
* 匹配零次或多次前面的分组
+ 匹配一次或多次前面的分组
{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中常见的正则表达式符号的更多相关文章
- Python中常见的报错名称
Python中常见的报错名称 1.SyntaxError 语法错误.看看是否用Python关键字命名变量,有没有使用中文符号,运算符.逻辑运算符等符号是不是使用不规范. 2.IndentationEr ...
- python中时间日期格式化符号
python中时间日期格式化符号: import time print(time.strftime('%Y%H%M%S', time.localtime())) 运行结果: 2016092308 %y ...
- Python中常见字符串去除空格的方法总结
Python中常见字符串去除空格的方法总结 1:strip()方法,去除字符串开头或者结尾的空格>>> a = " a b c ">>> a.s ...
- Python中常见的异常总结
Python中常见的异常总结 当Python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常. 一.异常错误 a.语法错误 错误一: if ...
- python中常见的错误
python中常见的错误 1.IndentationError: unindent does not match any outer indentation leve 众所周知,Python语法要 ...
- python中常见的报错信息
python中常见的报错信息 在运行程序时常会遇到报错提示,报错的信息会提示是哪个方向错的,从而帮助你定位问题: 搜集了一些python最重要的内建异常类名: AttributeError:属性错误, ...
- Python 中常见错误总结
IndentationError: unexpected indent Python 中强制缩进,, IndentationError: unexpected indent 缩进错误 这类错误非常常见 ...
- Python中常见的数据类型总结
Python提供多种数据类型来存放数据项集合,主要包括序列(列表list和元组tuple),映射(如字典dict),集合(set),下面对这几种一一介绍: 一 序列 1.列表list 列表是一种有序的 ...
- Python中re操作正则表达式
在python中使用正则表达式 1.转义符 正则表达式中的转义: '\('表示匹配小括号 [()+*/?&.] 在字符组中一些特殊的字符会现出原形 所有的\s\d\w\S\D\W\n\t都表示 ...
随机推荐
- mybatis多参数传递(其中包括数组)
mapper接口 public void batchDelete(@Param(value = "activityId") Integer activityId, @Param(v ...
- Java博客目录
JavaWeb 1.Tomcat使用 2.Servlet入门 3.JSP&EL&JSTL 4.Listener&Filter Java框架 Hibernate 1.简介及初使用 ...
- 自顶向下深入分析Netty(五)--Future
再次回顾这幅图,在上一章中,我们分析了Reactor的完整实现.由于Java NIO事件驱动的模型,要求Netty的事件处理采用异步的方式,异步处理则需要表示异步操作的结果.Future正是用来表示异 ...
- Django框架详细介绍---Form表单
一.概述 在HTML页面中,利用form表单向后端提交数据时,需要编写input等输入标签并用form标签包裹起来,与此同时,在很多应用场景之下需要对用户输入的数据校验,例如注册登录页面中,校验用户注 ...
- react16实战总结
实战总结 react实战基础 遇到的一些坑 li里要带key值否则会警告,这个问题在vue中也存在, 考虑到虚拟DOM中diff,所以不要用index作为key值,而要用item. 2.immutab ...
- SQL中内连接和外连接的区别
数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表 ...
- 莫名奇妙虚拟机 ip addr 不显示 ip 地址,连不上网络
CentOS7 Failed to start LSB: Bring up/down networking. 说是mac地址不对.其实,本人并没有配置mac,按理说用的默认的.之前一直是可以正常工作的 ...
- webservice常用两种身份验证方式
在项目开发,我们经常会使用WebService,但在使用WebService时我们经常会考虑以下问题:怎么防止别人访问我的WebService?从哪里引用我的WebService?对于第一个问题,就涉 ...
- 简易轮播图、内含定时器。熟练JS操作
HTML部分: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF ...
- java0424 wen 集合框架2