import re

str1 = 'imooc python'
# str1.find('l1') 输出: -1
# str1.find('imooc') 0 # str1.startswith('imooc') True pa = re.compile(r'imooc') #加个r 代表是个原字符串
# pa = re.compile('imooc\n') \n会转译成一个换行符 # type: _sre.SRE_Pattern pa.match(str1)
ma = pa.match(str1)
# ma.span() (0, 5)
# ma.group() 'imooc' # ma.string 'imooc python'
# ma.re re.compile(r'imooc', re.UNICODE) pa1 = re.compile(r'_')
ma1 = pa1.match('_value')
# ma1.group <function SRE_Match.group> # pa re.compile(r'imooc', re.UNICODE) ma = pa.match('imooc python')
# ma.group() 'imooc' # pa = pa.match('imoOc python', re.I)
# type(pa) NoneType pa = re.compile(r'(imooc)', re.I) #组 大写的i
ma = pa.match(str1)
# ma.group() 'imooc'
# ma.groups() ('imooc',) # ma = re.match(r'imooc', str1)
# ma <_sre.SRE_Match object; span=(0, 5), match='imooc'>
# ma.group() 'imooc'

  

语法

# . 匹配任意字符 除了\n
# ma = re.match(r'a', 'a')
# ma.group() 'a' # ma = re.match(r'.', 'b')
# ma.group() 'b' # ma = re.match(r'.', '0')
# ma.group() '0' # ma = re.match(r'{.}', '{a}')
# ma.group() '{a}' # ma = re.match(r'{..}', '{a0}')
# ma.group() '{a0}' # [...] 匹配字符集
# ma = re.match(r'{[abc]}', '{a}')
# ma.group() '{a}' # ma = re.match(r'{[abc]}', '{d}')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group' # ma = re.match(r'{[a-z]}', '{d}')
# ma.group() '{d}' # ma = re.match(r'{[a-zA-Z]}', '{D}')
# ma.group() '{D}' # ma = re.match(r'{[a-zA-Z0-9]}', '{9}')
# ma.group() '{9}' # ma = re.match(r'{[\w]}', '{0}')
# ma.group() '{0}' # ma = re.match(r'{[\w]}', '{ }')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group' # ma = re.match(r'{[\W]}', '{ }')
# ma.group() '{ }' # ma = re.match(r'{[[\w]]}', '[0]')
# ma.group() AttributeError: # ma = re.match(r'\[[\w]\]', '[0]') 要加转译字符
# ma.group() '[0]'

  

import re

# ma = re.match(r'[A-Z][a-z]', 'Aa')
# ma.group() 'Aa' # ma = re.match(r'[A-Z][a-z]*', 'A')
# ma.group() 'A' # ma = re.match(r'[A-Z][a-z]*', 'AdsfafeadcxAe') 如果出现数字是匹配不上的
# ma.group() 'Adsfafeadcx' # _ = 10
# _ 10 # ma = re.match(r'[0-9]?[0-9]', '90')
# ma.group() '90' # ma = re.match(r'[0-9]?[0-9]', '9')
# ma.group() '9' # ma = re.match(r'[0-9]?[0-9]', '09')
# ma.group() '09' # ma = re.match(r'[a-zA-Z0-9]{6}', 'abc123')
# ma.group() 'abc123' # ma = re.match(r'[a-zA-Z0-9]', 'abc123')
# ma.group() 'a' # ma = re.match(r'[a-zA-Z0-9]{6}', 'abc123__')
# ma.group() 'abc123' # ma = re.match(r'[a-zA-Z0-9]{6}@163.com', 'abc123@163.com')
# ma.group() 'abc123@163.com' # ma = re.match(r'[a-zA-Z0-9]{6, 10}@163.com', 'imoocedu@163.com')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group' # ma = re.match(r'[0-9][a-z]*?', '1bc')
# ma.group() '1' # ma = re.match(r'[a-zA-Z0-9]+?', '1bc')
# ma.group() '1'

  

# ma = re.match(r'\Aimooc[\w]', 'imoocpython') 边界匹配

# ma.group()                            'imoocp'

  

# ma = re.match(r'abc|d', 'abc')
# ma.group() 'abc' # ma = re.match(r'[1-9]?\d$', '9')
# ma.group() '9' # ma = re.match(r'[1-9]?\d|100$', '100')
# ma.group() '10' # ma = re.match(r'[1-9]?\d|100$', '99')
# ma.group() '99' # ma = re.match(r'[1-9]?\d|100$', '9')
# ma.group() '9' # ma = re.match(r'[\w]{4, 6}@(163|126).com', 'imooc@163.com')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group' # ma = re.match(r'[\w]{4, 6}@(163|126).com', 'imooc@126.com')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group' # ma = re.match(r'<[\w]+>', '<book>')
# ma.group() '<book>' # ma = re.match(r'<([\w]+>)', '<book>')
# ma.group() '<book>' # ma = re.match(r'<([\w]+>)\1', '<book>')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group' # ma = re.match(r'<([\w]+>)\1', '<book>book>')
# ma.group() '<book>book>' # ma = re.match(r'<([\w]>)[\w]+</\1', '<book>python</book>')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group' # ma = re.match(r'<(?P<mark>[\w]>)[\w]+</(?P=mark)', '<book>python</book>')
# ma.group() AttributeError: 'NoneType' object has no attribute 'group'

  

import re

str1 = 'imooc videonum = 100'

# str1.find('100')                     # 17

info = re.search(r'\d+', str1)
# info # <_sre.SRE_Match object; span=(17, 20), match='100'> str1 = 'imooc videonum = 10000'
# info.group() # '100' str2 = 'c++=100, java=90, python=80'
info = re.findall(r'\d+', str2)
# info ['100', '90', '80']
# sum([int(x) for x in info]) 270 str3 = 'imooc videonum = 10000'
info = re.sub(r'\d+', '1001', str3)
# info 'imooc videonum = 1001' def add1(match):
val = match.group()
num = int(val) + 1
return str(num) # re.sub(r'\d+', add1, str3) 'imooc videonum = 10001' str4 = 'imooc:c c++ java python'
#不能仅仅使用空格分割
re.split(r':| ', str4) #['imooc', 'c', 'c++', 'java', 'python'] # str4 = 'imooc:c c++ java python,c#'
# re.split(r':| |,', str4) ['imooc', 'c', 'c++', 'java', 'python', 'c#']

  

常用正则表达式RE(慕课网_Meshare_huang)的更多相关文章

  1. 慕课网:剑指Java面试-Offer直通车视频课程

    慕课网:剑指Java面试-Offer直通车视频课程,一共有10个章节. 目录结构如下: 目录:/2020036-慕课网:剑指Java面试-Offer直通车 [6G] ┣━━第10章 Java常用类库与 ...

  2. JavaScript入门--慕课网学习笔记

     JAVASCRIPT—(慕课网)入门篇 我们来看看如何写入JS代码?你只需一步操作,使用<script>标签在HTML网页中插入JavaScript代码.注意, <script&g ...

  3. java网络爬虫----------简单抓取慕课网首页数据

    © 版权声明:本文为博主原创文章,转载请注明出处 一.分析 1.目标:抓取慕课网首页推荐课程的名称和描述信息 2.分析:浏览器F12分析得到,推荐课程的名称都放在class="course- ...

  4. [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

    [python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...

  5. 常用正则表达式-copy

    匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度:[\ ...

  6. PHP常用正则表达式汇总 [复制链接]

    PHP常用正则表达式汇总 [复制链接] 上一主题下一主题   离线我是小猪头   法师     发帖 539 加关注 发消息 只看楼主 倒序阅读 使用道具楼主  发表于: 2011-06-22 更多 ...

  7. 慕课网-安卓工程师初养成-4-7 Java循环语句之 while

    来源: http://www.imooc.com/code/1420 生活中,有些时候为了完成任务,需要重复的进行某些动作.如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈.在 ...

  8. Python爬虫之爬取慕课网课程评分

    BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...

  9. RegExp正则表达式规则以及常用正则表达式

    html,body { font-family: "SF UI Display", ".PingFang SC", "PingFang SC" ...

随机推荐

  1. 1002 A+B for Polynomials (25分)

    This time, you are supposed to find A+B where A and B are two polynomials. Input Specification: Each ...

  2. prometheus+grafana监控mysql最佳实践

    导航 前言 环境准备 安装Docker 安装prometheus 安装mysqld_exporter prometheus采集数据 安装grafana grafana配置数据源 感谢您的阅读,预计阅读 ...

  3. [Java] 数据类型, 变量, 运算符, 表达式

    title: [Java] 变量与表达式 你已经学会输出 Hello world 了, 那么现在, 我们来学习关于变量的知识 基本数据类型 在 Java 中, 有 8 种基本的数据类型: 名称 描述 ...

  4. linux下安装并使用msgfmt命令

    msgfmt安装方法: sudo apt-get install gettext 编码 po 文件为 mo 文件: msgfmt -o test.mo test.po mo 文件反编码成 po文件: ...

  5. MetaWeblog访问地址

    MetaWeblog访问地址 https://rpc.cnblogs.com/metaweblog/csnd

  6. hdu4530 水题

    题意: 小Q系列故事--大笨钟 Time Limit: 600/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...

  7. UVA11624大火蔓延的迷宫

    题意:     给1个n*m的网格,上面有的点能走,有的点不能走(墙),然后有的点是火源,火源和人一样,每次都是上下左右四个方向蔓延,速度一样是1,火也不可以从墙上跨过去,给你人的起点,终点是只要走到 ...

  8. 实时计算框架:Flink集群搭建与运行机制

    一.Flink概述 1.基础简介 Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算.Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算.主要特性包 ...

  9. 关于Java处理串口二进制数据的问题 byte的范围 一个字节8bits

    前置知识点 byte的范围[-128~127] 内存里表现为 0x00~0xFF 刚好是一个8bits的字节 问题 byte[] hexData = new byte[] {0x01, 0x03, 0 ...

  10. Windows进程间通讯(IPC)----套接字

    Windows套接字 Windows套接字即socket,通过socket可以实现在不同的进程间通信,甚至这两个进程可以不在同一个计算机中. Winsock使用步骤 服务端 socket初始化 创建套 ...