正则表达式的特殊字符:

语法:

re.match(正则语法,字符串)      # re.match() 为关键字

group(1)                    # 取出第一个匹配 括号中的值,1位第一个括号内的值

1. 特殊字符

1 . ^ $ * ? + {2} {2,} {2,5} | . .*
^b : 依照b开头
$0 : 依照0结尾
* : 表示前面一个字符可以重复任意多次(0次或n次)
? : 非贪婪模式匹配
+ : 前面字符最少出现一次,才能匹配成功 (和 * 号差异在于其要出现最少一次)
{2}: 前面字符出现的次数{n}
{2,}: 前面字符出现{n,} 次以上
{2,5}: 前面字符最多少最多出现的次数
| : 或
. : 代表任意字符
.* : 任意字符任意次数 2 . [] [^] [a-z] [.] [.*]
[] : 只要在[] 中的字符串中任意一个都可被匹配
[^]: 取非,不等于指定的值[^3] (不等于 3)
[0-9]: 区间值 0-9
[a-z]: 区间值 a-z
[.]: 祛除其原有意义只是一个 .
[.*]: 祛除其原有意义只是一个 .* 3 . \s \S \w \W \d
\s : 空格
\S : 只要不是空格
\w : 包含:[A-Za-z0-9_] 的字符
\W : 不包含:[A-Za-z0-9_] 的字符
\d : 数字
4 . [\u4E00-\u9FA5]
[\u4E00-\u9FA5] : 包含汉字

2. 判断一个字符串是否为 "b" 开头

line = "baolin2200"
regex_str = "^b.*" data_str = re.match(regex_str, line)[0]
print(data_str)

输出:

baolin2200

3. 判断一个字符串是否为 "b" 开头 和 "0" 结尾

line = "baolin2200"
regex_str = "^b.*0$" data_str = re.match(regex_str, line)[0]
print(data_str)

输出

baolin2200

**4. 使用非贪婪模式 ? 取出 "baaaal" 这一部分字符串,只提取第一次出现的 "b.l" **

line = "xxxxbaaaalbaaooooolin2200"
regex_str = ".*?(b.*?l).*" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

baaaal

5. 贪婪模式会取出最后一个"b.l"部分的字符, "baaoooool" 后面这部分值

line = "xxxxbaaaalbaaooooolin2200"
regex_str = ".*(b.*l).*" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

baaoooool

6. 取出 baaaal 这一部分字符串

line = "xxxxbaaaalbaaooooolin2200"
regex_str = ".*?(b.+?l).*" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

baaaal

7. 前面字符出现的次数 {n}

line = "xxxxbaaaalbaaooooolin2200"
regex_str = ".*?(b.{4}l).*" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

baaaal

8. 找出"b 和 l"中间字符串 最少出现5次,最多出现7次的匹配

line = "xxxxbaaaalbaaooooolin2200"
regex_str = ".*?(b.{5,7}l).*" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

baaoooool

9.查看字符串中是否包含 bao2200 或 baolin2200 字符串

# group(1)   打印一层括号内值 baolin2200
# group(2) 打印二层括号内值 baolin line = "baolin2200"
regex_str = "((bao|baolin)2200)" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

baolin2200

10.字符串是否依照 [abcd] 开头

line = "baolin2200"
regex_str = "(([abcd]aolin)2200)" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

baolin2200

11. 匹配数字组合判断是否为手机号码

line = "13812341894"
regex_str = "(1[356789][\d]{9})" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

13812341894

12. 匹配字符串之间空格 \s+ 多个或一个空格

line = "你  好"
regex_str = "(你\s+好)" data_str = re.match(regex_str, line).group(1)
print(data_str)

13.匹配一段"中文"字符串

line = "你好"
regex_str = "([\u4E00-\u9FA5]+)" data_str = re.match(regex_str, line).group(1)
print(data_str)

输出:

你好

14.匹配出指定的学校名称

line = "study in 天津大学"
regex_str = ".*?(([\u4E00-\u9FA5]+)大学)" data_str1 = re.match(regex_str, line).group(1)
data_str2 = re.match(regex_str, line).group(2)
print(data_str1)
print(data_str2)

输出:

天津大学
天津

15.多种语法的套用

linex = "XXX出生于2001年6月"
linex = "XXX出生于2001-06-01"
linex = "XXX出生于2001/06/01"
linex = "XXX出生于2001/6/1"
linex = "XXX出生于2001年6月" restr = ".*出生于(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}|[月/-]$|$))"
data=re.match(restr, linex).group(1)
print(data)

正则re模块的更多相关文章

  1. Python模块(三)(正则,re,模块与包)

    1. 正则表达式 匹配字符串 元字符 .   除了换行 \w  数字, 字母, 下划线 \d  数字 \s  空白符 \n 换行符 \t  制表符 \b  单词的边界 \W  \D \S 非xxx [ ...

  2. 日志(logging)与正则(re)模块

    logging模块 #日志:日常的流水 =>日志文件,将程序运行过程中的状态或数据进行记录,一般都是记录到日志文件中 #1.logging模块一共分为五个打印级别 debug.info.warn ...

  3. python正则--re模块常用方法

    前面几篇关于正则匹配的文章我用的方法都只有一个re.search 但其实正则re模块提供很多非常好用的方法,我们先来看看re模块都有那些属性方法呢 前面的一堆带_或者大写的就不关注了,主要关注最后面的 ...

  4. 正则 re模块

    Python 正则表达式 re 模块 简介 正则表达式(regular expression)是可以匹配文本片段的模式.最简单的正则表达式就是普通字符串,可以匹配其自身.比如,正则表达式 ‘hello ...

  5. python的正则re模块

    一. python的正则 python的正则模块re,是其内置模块,可以直接导入,即import re.python的正则和其他应用的正则及其相似,有其他基础的话,学起来还是比较简单的. 二. 正则前 ...

  6. python正则re模块

    今日内容: 知识点一:正则 什么是正则:  就是用一系列具有特殊含义的字符组成一套规则,改规则用来描述具有某一特征的字符串  正则就是用来在一个大的字符串中取出符合规则的小字符串   为什么用正则:  ...

  7. python 正则 re模块(详细版)

    正则表达式 什么是正则表达式? 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合 ...

  8. Python 正则表达模块详解

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  9. python - re正则匹配模块

    re模块 re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re ...

  10. 正则+re模块知识总结

    目录 正则表达式 定义+特点 元字符 量词 贪婪匹配与非贪婪匹配 转义符 re模块 re.findall re.search re.match re.compile re.finditer re.sp ...

随机推荐

  1. LINQ Except “引用类型” 用法

    值类型的比较Except 直接就比了 正经集合类型的如下 var resultExcept = Expert_ItemSource.Except(Invert_ItemSource, new MyCo ...

  2. OGG初始化之将数据从文件加载到Replicat

    要使用Replicat建立目标数据,可以使用初始加载Extract从源表中提取源记录,并将它们以规范格式写入提取文件.从该文件中,初始加载Replicat使用数据库接口加载数据.在加载过程中,更改同步 ...

  3. js变量的解构赋值

    今天在学习时看到几段代码,让我感叹JS的灵活,特此一记: let stateObj = {a:1,b:3}; let newObj = {b:13,c:4} ; stateObj = {...stat ...

  4. 新版本微信导致的ios表单bug

    解决方法如下: $(document).delegate('input, textarea, select', 'blur', function(){ setTimeout(function(){ $ ...

  5. gcc的使用简介与命令行参数说明

    (一) gcc的基本用法(二) 警告提示功能选项(三) 库操作选项(四) 调试选项(五) 交叉编译选项 (一) gcc的基本用法使用gcc编译器时,必须给出一系列必要的调用参数和文件名称.不同参数的先 ...

  6. Js -----后台json数据,前端生成下载text文件

    需要引入 <script src="/assets/libs/single_file/jquery.min.js"></script> <script ...

  7. GridView的stretchMode属性

    stretchMode属性值的作用是设置GridView中的条目以什么缩放模式去填充剩余空间.参数stretchMode 可选值为:none,spacingWidth,columnWidth, spa ...

  8. Codeforces 487E Tourists [广义圆方树,树链剖分,线段树]

    洛谷 Codeforces 思路 首先要莫名其妙地想到圆方树. 建起圆方树后,令方点的权值是双联通分量中的最小值,那么\((u,v)\)的答案就是路径\((u,v)\)上的最小值. 然而这题还有修改, ...

  9. vue项目中实现复制内容到剪贴板

    项目中要实现分享功能,现在各种接口都关闭了,而且不同的浏览器要使用不同的代码,最后决定直接复制url,然后手动分享 Vue中使用了vue-clipboard2 github地址:https://git ...

  10. 来,了解一下Java内存模型(JMM)

    网上有很多关于Java内存模型的文章,在<深入理解Java虚拟机>和<Java并发编程的艺术>等书中也都有关于这个知识点的介绍.但是,很多人读完之后还是搞不清楚,甚至有的人说自 ...