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都表示 ...
随机推荐
- LeetCode 15 输入无序、有重复,输出排重版 3-Sum
V1 粗暴的遍历,时间复杂度O(N³) func threeSumClosest(nums []int, target int) int { min := 0 result := 0 for i := ...
- js添加和删除class
原生主要有三种方法: 1.className var DomClass = document.getElementById("id").className; //删除 pat Do ...
- iframe父页面与子页面赋值
最近因为公司之前的系统用iframe,里面的高度不能自适应,导致了很多问题,今天特意拿来研究一下,从网上找了一些方法试验了一下,这里记录一下成功的方法 1.父页面获取子页面的高度,并给父页面赋值 父页 ...
- G面经Prepare: Print Zigzag Matrix
For instance, give row = 4, col = 5, print matrix in zigzag order like: [1, 8, 9, 16, 17] [2, 7, 10, ...
- c# webapi上传、读取、删除图片
public class FileAPIController : BaseController { private readonly string prefix = "t ...
- Unity XLua之协程
如何使用xlua实现协程,示例代码如下: 转载请注明出处:https://www.cnblogs.com/jietian331/p/10735773.html local unpack = unpac ...
- css画斜线(用于时间的显示)
- 【SparkStreaming学习之四】 SparkStreaming+kafka管理消费offset
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- lua tonumber
[1]应用tonumber函数 local function test(telnum) , )) == ) -- 5000~5999公司预留号码 , ) == ' or isLen or isRese ...
- Fetch和ajax的比较和区别
传统 Ajax 已死,Fetch 永生 Ajax 不会死,传统 Ajax 指的是 XMLHttpRequest(XHR),未来现在已被 Fetch 替代. 最近把阿里一个千万级 PV 的数据产品全 ...