# 导入re模块
import re# re.match(正则表达式,需要处理的字符串)
ret = re.match(r"hello" ,"hello world")
print(ret)
# [] 判断中括号数据
# .*  点:任意   *
ret = re.match(r"[12345678].*", "4速度与激情")
print(ret)
[] 匹配[]中列的字符
\d 匹配(0,9)数字
\w 匹配单词字符
\s 匹配空格
\D 小的相反
\S 小的相反
\W 小的相反
. 等价任意1个(除了\n)匹配多个字符串:问号/大括号/星号/点匹配反斜\n
\d{1,2} 匹配来约束定义是数,如:手机号:
* 匹配任意个数,即可有可无
{} 约束个数
“”“”“” 匹配所用不换行
+ 匹配前一个字符出现1次或者无限次,即至少有1次
?匹配前一个字符出现1次或者0,即至少有1次,要么没有
{m} 匹配就一个字符出现 m次
{m,n} 匹配就一个字符出现 m次到次
注意:
/n 不能匹配
re.S 想匹配需要加
^$ 从头匹配到屋
| 或(左右一边)
(ab) 将括号中的字符作为一个分组
\nam 引用分组num匹配到的字符串
(?P<name>)  分组起名
(?P=name)  引用别名为name分组匹配到的字符串
match 匹配从头开始
search (位置不定)匹配字符串:
sub  替换多个 注意:必须返回字符串
findall  返回列表
splist  切割字符串
+? 变非贪婪
*? 变非贪婪
?? 变非贪婪
{1,3}? 变非贪婪
ret = re.match(r".*[1-8]", "速度与激情8")
print(ret)
# 中括号也可以字母
ret = re.match(r".*[1-8a-zA-Z]", "速度与激情D")
print(ret)
# {}大括号约束定义是数:如手机号
ret = re.match(r"\d{11}", "13971052605")
print(ret)
# {}大括号约束定义是数:如手机号
# 匹配电话号码是否正确
ret = re.match(r"027-?\d{8}", "027-65503097")
print(ret)
# {}大括号约束定义是数:如手机号
# 匹配电话号码是否正确
# 如果是7,8位的电话号码,如下:
ret = re.match(r"\d{3,4}-?\d{7,8}", "0270-65503097")
print(ret)
# .* 匹配所有字符串
# 结果:为什么dfsdfsdfsdf是这个结果?
a = """dfsdfsdfsdf
sdf
sdfsdf
sdfsdfsdfsdfsdf
sdf
sdfsdfsdfsdgdfhgfhsgd
dsfaffasf
"""
ret = re.match(r".*", a)
print(ret)
# 想匹配需要加  re.S
a = """dfsdfsdfsdf
sdf
sdfsdf
sdfsdfsdfsdfsdf
sdf
sdfsdfsdfsdgdfhgfhsgd
dsfaffasf
"""
ret = re.match(r".*", a,re.S )
print(ret)
#匹配出,变量名是否有效
names = ["name1", "_name", "2_name", "__name__"]
for k in names:ret = re.match(r"[a-zA-Z_][a-zA-Z_0-9]*",k)if ret:print("变量名 %s 符合要求%s" % (k,ret.group()))else:print("变量名 %s 非法"%k)# 变量名 name1 符合要求name1
# 变量名 _name 符合要求_name
# 变量名 2_name 非法
# 变量名 __name__ 符合要求__name__
#匹配出,变量名是否有效
# ^ $ 从头匹配到屋
names = ["name1", "_name", "2_name", "__name__"]
for k in names:ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)if ret:print("变量名 %s 符合要求%s"%(k,ret.group()))else:print("变量名 %s 非法"%k)
#匹配出,变量名是否有效
# ^ $ 从头匹配到屋
names = ["name1", "_name", "2_name", "__name__"]
for k in names:ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)if ret:print("变量名 %s 符合要求%s"%(k,ret.group()))else:print("变量名 %s 非法"%k)# 变量名 name1 符合要求name1
# 变量名 _name 符合要求_name
# 变量名 2_name 非法
# 变量名 __name__ 符合要求__name__
# 匹配多个邮箱地址,如:126,qq,.....
email = input("请输入邮箱地址:")
ret = re.match(r"[a-zA-Z_0-9]{4,20}@(163|126|qq)\.com$\.com$", email)
if ret:print("%s符合"% email)
else:print("%s不符合"% email)# 请输入邮箱地址:15088842598@163.comcom
# 15088842598@163.comcom不符合
这里写代码片

基础:正则表达式方便理解相关推荐

  1. python基础—正则表达式即re模块

    正则表达式(regular expression),就是字符匹配模式,而这个匹配规则在我们写爬虫进行数据提取,或者进行数据可视化进行数据清洗时经常用到,多样化的匹配规则在复杂的字符的情况提取数据时助我 ...

  2. Java基础-我所理解的泛型

    Java基础-我所理解的泛型 引用 [java]泛型中,? extends T 与 ? super T 的区别.看法_winrh的博客-CSDN博客_泛型 extends 前言 Java基础系列,我所 ...

  3. Linux学习8之Shell编程--基础正则表达式

    1. 正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配的.grep.awk.sed等命令可以支持正则表达式. 通配符是用来匹配符合条件的文件名,通配符是完全匹配的.ls. ...

  4. BlockChain:区块链技术基础概念综合理解——个人总结

    BlockChain:区块链技术基础概念综合理解--个人总结 目录 区块链的进阶与意义 1.区块链技术的进阶 2.区块链技术三大意义-传递价值.建立可信用环境.提高效率和降低成本 1.传递价值 2.建 ...

  5. 基础正则表达式介绍与练习

    基础正则表达式介绍与练习 一.什么是正则表达式 在做文字处理或编写程序时,用到查找.替换等功能,使用正则表达式能够简单快捷的完成目标.简单而言,正则表达式通过一些特殊符号的帮助,使用户可以轻松快捷的完 ...

  6. 基础正则表达式及常用正则表达式

    正则表达式 基础正则表达式 字符 表达式 描述 [abc] 字符集.匹配集合中所含的任一字符. [^abc] 否定字符集.匹配任何不在集合中的字符. [a-z] 字符范围.匹配指定范围内的任意字符. ...

  7. 『现学现忘』Shell编程 — 22、基础正则表达式

    文章目录 1.正则表达式说明 2.基础正则表达式 3.练习 (1)准备工作 (2)"*"练习 注意: 限位(制)符: (3)"."练习 (4)"^&q ...

  8. shell基础正则表达式

    目录 一.排序命令 sort 1.格式 2.常用选项 二.uniq命令 选项 三.显示.连接文件命令--cut 1.格式 2.常用选项 四.正则表达式 1.基础正则表达式常见元字符(支持工具:egre ...

  9. 第3关:基础正则表达式--区间与区间取反

    任务描述 本关任务:运用正则表达式的区间表示方法,编写一个能从文本中快速匹配到数字与不是数字字符的小程序. 相关知识 为了完成本关任务,你需要掌握: 正则表达式区间的表达方式: 正则表达式区间取反的表 ...

  10. jquery正则表达式基础辅助式理解

    1.什么是正则表达式? 根据百度百科的说法,正则表达式使用单个字符串来描述,匹配一些列符合某个语法规则的字符串,在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 其实嘛,正则 ...

最新文章

  1. 不同的source control下配置DiffMerge
  2. C#对图片文件的压缩、裁剪操作初探
  3. 解决写入InfluxDB时,报unbalanced quotes的问题
  4. nacos持久化配置MySQL8_Nacos 数据持久化 mysql8.0
  5. linux ubuntu安装 mono,在 Ubuntu Server 上安装配置 Mono 生产环境
  6. css :after和:before
  7. java day43【Filter:过滤器 、Listener:监听器】
  8. 视频教程-R语言入门基础-大数据
  9. java运用kmeans算法进行聚类
  10. python 完全背包问题_python背包问题
  11. png图片怎么转换成jpg?png转jpg批量
  12. PHP之实现 家谱树,子孙树
  13. @RestController当中的value 含义
  14. 水果店群发朋友圈文案,水果店发朋友圈文案
  15. 9 个美观大气的后台管理系统
  16. HTTP协议请求方式: 中GET、POST和HEAD的介绍
  17. 阿尔法元秒杀阿法狗,人工智能时代开启了吗
  18. 原创整理!计算机常用【快捷键、缩写、英语单词】不定更
  19. 提高企业WiFi速度的快速简便的方法—Vecloud微云
  20. java学习日记-接口

热门文章

  1. 独家 | 强化学习必知二要素——计算效率和样本效率
  2. Amazon教程:刚买就降价!避免损失,申请PRICE MATCH(价格保护)的方法
  3. Cortex-M的M0,M+,M3,M4,M7几种内核的简单区别
  4. php中怎么合并单元格,phpword合并单元格
  5. javascript DOM 操作基础知识小结
  6. u盘插电脑显示跟这台计算机,五大步骤解决U盘插入电脑盘符不显示问题
  7. 愚人节将至,怎么恶搞最过瘾
  8. android button 点击没有音效
  9. 服务器装系统报0x0000005d,安装Win8系统提示Error Code:0x0000005D错误怎么办
  10. 阿里云服务器地域及可用区的选择问题