python正则表达式匹配总结

原创 2018年04月17日 17:44:38

一、通用格式

import re    #导入模块

re_name = re.compile(r'表达式')   #匹配类型表达式

value_name = re_name.search('要查找的数据')   #匹配要查找的数据

print_name = value_name.group()    #将查找到的数据打印

print (print_name)    #python3打印找到的数据

二、各参数

2.1 利用括号分组

2.2 用管道匹配多个分组

2.3 用问号实现可选匹配

2.4 用星号匹配零次或多次

2.5 用加号匹配一次或多次

2.6 用花括号匹配特定次数

2.7 贪心和非贪心匹配

2.8 findall()方法

2.9 字符分类

2.10 建立自己的字符分类

2.11 插入字符和美元字符

2.12 通配字符

2.13 用点-星匹配所有字符

2.14 用句点字符匹配换行

三 总结

 ?匹配零次或一次前面的分组。
 *匹配零次或多次前面的分组。
 +匹配一次或多次前面的分组。
 {n}匹配 n 次前面的分组。
 {n,}匹配 n 次或更多前面的分组。
 {,m}匹配零次到 m 次前面的分组。
 {n,m}匹配至少 n 次、至多 m 次前面的分组。
 {n,m}?或*?或+?对前面的分组进行非贪心匹配。
 ^spam 意味着字符串必须以 spam 开始。
 spam$意味着字符串必须以 spam 结束。
 .匹配所有字符,换行符除外。
 \d、\w 和\s 分别匹配数字、单词和空格。
 \D、\W 和\S 分别匹配出数字、单词和空格外的所有字符。
 [abc]匹配方括号内的任意字符(诸如 a、b 或 c)。
 [^abc]匹配不在方括号内的任意字符。

四 例子

简单复制数据查找电话号码与查找邮件地址

import pyperclip, re
phoneRegex = re.compile(r'(\d{3})(\.)(\d{3})(\.)(\d{4})')
emailRegex = re.compile(r'([a-z]+@[a-z]+\.com)')
text = str(pyperclip.paste())
matches = []
for groups in phoneRegex.findall(text):
    phoneNum = '-'.join([groups[0], groups[2], groups[4]])
    matches.append(phoneNum)
print (matches)
for groups in emailRegex.findall(text):
    matches.append(groups)
print (matches)
if len(matches) > 0:
    pyperclip.copy('\n'.join(matches))
    print('Copied to clipboard:')
    print('\n'.join(matches))
else:
    print('No phone numbers or email addresses found.')



Python正则表达式匹配各种标准形式整理

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表...
  • HHTNAN
  • HHTNAN
  • 2017-06-27 13:50:24
  • 1801

Python中正则表达式的匹配规则

下面是Python中正则表达式的一些匹配规则,图片资料来自CSDN:
  • qq_32616315
  • qq_32616315
  • 2017-10-09 22:54:18
  • 335

Python-正则表达式多次匹配

要点要查找所有匹配项,用findall函数。
  • u013344915
  • u013344915
  • 2016-11-07 22:50:42
  • 3296

正则表达式中匹配字符中括号'['

>>> import re >>> a = "abc[123]abc" >>> b = re.match(r"(.*)\[([^\[\]]*)\](.*)",a,re.I|re.M) >>> b.gr...
  • zjm750617105
  • zjm750617105
  • 2016-02-23 12:39:49
  • 5600

剑指offer:正则表达式匹配

题目描述请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如...
  • gao1440156051
  • gao1440156051
  • 2016-05-04 11:11:59
  • 1098

Python正则表达式的几种匹配用法

下面列出Python正则表达式的几种匹配用法: 1.测试正则表达式是否匹配字符串的全部或部分regex=ur"" #正则表达式 if re.search(regex, subject):     do...
  • suiyunonghen
  • suiyunonghen
  • 2009-01-12 22:42:00
  • 94166

python正则表达式与文本匹配

python很强大 python的正则表达式很好用 这篇文章就写写怎么用python的正则表达式来匹配txt文本中的字符吧 首先,要知道自己匹配的字符串是什么形式的,然后根据自己...
  • cvb00052
  • cvb00052
  • 2017-08-17 22:55:43
  • 536

Python 正则表达式匹配字符串中的日期和时间

利用正则表达式匹配字符串中的日期和时间。
  • potato012345
  • potato012345
  • 2017-10-12 16:25:39
  • 2207

python正则表达式匹配邮箱

以前在js中遇到过验证邮箱格式的情况: http://blog.csdn.net/xxm524/article/details/46848495 下面来看看python验证邮箱模式的例子。 1. 一...
  • xxm524
  • xxm524
  • 2015-09-21 16:37:18
  • 4438

Python正则表达式的贪婪模式和非贪婪模式

贪婪模式是把所有匹配的获取到,非贪婪模式只取到第一个匹配到的字符串,在python中findall和match的区别。http://blog.csdn.net/qq_33447462/article/...
  • baidu_15113429
  • baidu_15113429
  • 2017-08-25 10:04:23
  • 578
收藏助手
不良信息举报
您举报文章:python正则表达式匹配总结
举报原因:
原因补充:

(最多只允许输入30个字)