正则表达式:

#正则表达式
#键盘数字6上的符号,^表示行的开始,$ 表示行的结束 #test = "tm queal Tomorrow Moon"
'''
^tm #匹配tm开头的文字
$tm #匹配
'''
# 元字符
# /b /w
'''
#字符类
[0-9] 等价于 \d[a-z0-9A-Z]等价于\w(只考虑英文)
#排除字符
^ 如在括号里面,表示排除这些字符 eg:[^a-zA-Z]
#选择字符
|表示选择,
(^\d{15}$)|(^\d(18)$)|(^\d{17}(\d|X|x))$ #匹配第一代身份证,第二代身份证
解释:^表示开始,为15个数字,并且以数字结尾,
或者以数字开头,18位的数字,并且以数字结尾,
或以数字开头,17位的数字,并且以X或x结尾
#转义字符:
例:需要匹配 127.0.0.1 [1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} '''
 
代码 元字符说明
. 匹配换行符以外的任意字符
\w 匹配字母,数字,下划线或汉字
\W 匹配字母,数字,下划线或汉字以外的字符
\s 匹配单个空白符(包括Tab和换行符)
\S 匹配单个空白符(包括Tab和换行符)以外的字符
\d 匹配的数字
\b 匹配单词的开始或者结束,但是通常是分界符是空格,标点符号或者换行
^ 匹配字符的开始
$ 匹配字符的结束
   
限定符 说明 举例
匹配前面字符的0次或者1次 colou?r ,可匹配到color和colour
+ 匹配前面字符的一次或者多次 go+gle,可以匹配到:gogle,goo…ogle
* 匹配前面的字符的零次或者多次 go*gle,可以匹配到:ggle,goo…ogle
{n} 匹配前面字符的n次 go{2},可以匹配到:google
{n,} 匹配前面字符最少n次 go{2,}gle,可以匹配到:google,goo...ogle
{n,m} 匹配前面字符最少n次,最多m次 google{1,3} 可以匹配到:google,googleee

import re   #导入正则表达式模块  

# 在py中match()
# re.match(pattern,string,[flags]) # \w 匹配字母数字下划线或者数字 +匹配前面字符的一次或者多次
# r 代表原始字符,防止出现转义
pattern = r'mr_\w+'
string = "MR_CODE mr_code"
match = re.match(pattern,string,re.I) # i表示不区分大小写
print(match)
#ps <re.Match object; span=(0, 7), match='MR_CODE'>
# 因为不匹配空格,故未匹配到 mr_code
# 将空格去掉后,MR_CODEmr_code 则可匹配到 MR_CODEmr_code pattern2 = r'mr_\w+'
string2 = "sssMR_CODE mr_code"
match2 = re.match(pattern2,string2,re.I) # i表示不区分大小写
print(match2)
# 若未匹配到,返回None # 在py中search()
pattern3 = r'mr_\w+'
string3 = "sssMR_CODE mr_code"
search = re.search(pattern3,string3,re.I) # i表示不区分大小写
print(search)
# <re.Match object; span=(3, 10), match='MR_CODE'> pattern4 = r'mr_\w+'
string4 = "ssssssMR_CODE mr_code"
search2 = re.search(pattern4,string4,re.I) # i表示不区分大小写
print(search2)
# <re.Match object; span=(6, 13), match='MR_CODE'> # 在py中findall()
pattern5 = r'mr_\w+'
string5 = "ssssssMR_CODE mr_code"
search5 = re.findall(pattern5,string5,re.I) # i表示不区分大小写
print(search5)
print("findall()") # 在py中sub() 替换
pattern6 = r'1[34578]\d{9}'
string6 = "中奖号码为:89332,联系电话:13611111111"
search6 = re.sub(pattern6,'1我爱学py',string6) # i表示不区分大小写
print("sub()")
print(search6)
# 中奖号码为:89332,联系电话:1我爱学py

  

py_正则表达式练习的更多相关文章

  1. Python之正则表达式(re模块)

    本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 正则表达式(Regluar Expressions)又称规则 ...

  2. 【转】Python之正则表达式(re模块)

    [转]Python之正则表达式(re模块) 本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 参考文档 提示: ...

  3. Python基础:28正则表达式

    一:概述 正则表达式(RE)为高级文本模式匹配,以及搜索-替代等功能提供了基础.正则表达式(RE)是一些由字符和特殊符号组成的字符串,它们能匹配多个字符串.Python通过标准库的re模块支持正则表达 ...

  4. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  5. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  6. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  7. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  8. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  9. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

随机推荐

  1. 3.28 省选模拟赛 染色 LCT+线段树

    发现和SDOI2017树点涂色差不多 但是当时这道题模拟赛的时候不会写 赛后也没及时订正 所以这场模拟赛的这道题虽然秒想到了LCT和线段树但是最终还是只是打了暴力. 痛定思痛 还是要把这道题给补了. ...

  2. scala---lazy

    scala中用lazy定义的变量叫做惰性变量,会实现延迟加载.惰性变量只能是不可变的变量.并且只有在调用惰性变量的时候才会被初始化. class Test1 { } object Test1 { de ...

  3. java进阶(2)--抽象类

    一.抽象类集刺虎: 1.概念 类与类之前有共同特征,将这些共同特征提取出来,行为抽象类   2.抽象类的数据类型: 引用数据类型   3.语法 [修饰符列表]abstract Class 类型{类体} ...

  4. OAuth2.0-3客户端授权放到数据库

    授权得客户端信息.授权码信息全都存在数据库 1.建表 官方给了个sql文件:https://github.com/spring-projects/spring-security-oauth/blob/ ...

  5. 解决Vue中element-ui输入框无法输入问题

    <el-input placeholder="请输入内容" v-model="input3" class="input-with-select& ...

  6. 2020牛客多校第八场K题

    __int128(例题:2020牛客多校第八场K题) 题意: 有n道菜,第i道菜的利润为\(a_i\),且有\(b_i\)盘.你要按照下列要求给顾客上菜. 1.每位顾客至少有一道菜 2.给顾客上菜时, ...

  7. 022_go语言中的协程

    代码演示 package main import "fmt" func f(from string) { for i := 0; i < 3; i++ { fmt.Print ...

  8. 解放双手!用 Python 控制你的鼠标和键盘

    在工作中难免遇到需要在电脑上做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己去刷网页打游戏,岂不是很爽?] 很多人学习python,不知道 ...

  9. Maven骨架生成项目速度慢问题解决办法

    在创建maven project时(使用了archetype),速度慢的令人不敢相信,从Idea的控制台可以看到信息停留在: [INFO] <<< maven-archetype-p ...

  10. 网络协议: TCP/IP 和UDP/IP

    网络协议: TCP/IP 和UDP/IP TCP/IP TCP/IP(Transmission Control Protocol/Internet Protocol)是一种可靠的网络数据传输控制协议. ...