内容概要

  • 正则表达式简介
  • 字符组
  • 特殊符号
  • 量词
  • 贪婪匹配与非贪婪匹配
  • 取消转义

正则表达式简介

'''正则表达式是一门语言,如果想在python中使用,需要导入re模块'''
# 什么是正则表达式?
利用一些特殊符号的组合去字符串中筛选出符合条件的数据 """
1.必须是11位
2.必须是纯数字
3.必须符合手机号的排布 15 16 18 19
"""
# phone = input('请输入你的手机号>>>:').strip()
# if len(phone) == 11:
# if phone.isdigit():
# if phone.startswith('15') or phone.startswith('16') or phone.startswith('18') or phone.startswith('19'):
# print('手机号正确')
# else:
# print('格式不对')
# else:
# print('手机号必须是纯数字')
# else:
# print('必须是11位') # 正则表达式 import re
while True:
phone = input('please input your phone number:')
if re.match('^(15|16|17|18)[0-9]{9}$', phone):
print('合法')
break
else:
print('格式不对')

字符组

'''
特征是使用中括号括起来,字符组默认只能单个单个字符匹配
''' [0123456789] # 表示匹配中括号内任何一个数字 简写为 [0-9] [a-z] # 匹配小写字母a到字母b其中任意一个字母 [A-Z] # 匹配大写字母A到字母Z其中任意一个字母 [a-zA-Z0-9] # 匹配所有数字 大小写字母

特殊符号

# 特殊符号默认也只能单个单个字符匹配
. '匹配'除了换行符之外的任意字符
\d 匹配纯数字
^ 匹配字符串的开始(判断是否以^后面的字符开头)
$ 匹配字符串的结尾(判断是否以$前面的字符结尾)
'''^与$组合使用可以精准限制要查找的数据''' a|b 匹配a或者b
() 匹配括号内的表达式也表示一个组(不会影响正则表达式的匹配,只是单纯的分组)
[...] 匹配字符组中的字符
[^...] 取反,除了字符组内的字符,其它字符都可以识别

量词

1、表达式在没有量词修饰时,都是单个单个匹配的
2、量词必须与字符串或者特殊符号一起使用,不能单独使用
3、量词只能修饰它前一个字符或表达式,ab+ , 只表示b能重复一次或者无数次 * 重复零次或者更多次
+ 重复1次或者更多次
? 重复0次或者1次
{n} 重复n次
{n, } 重复n次或更多次
{n, m} 重复n次到m次 '''正则表达式中的量词默认都是“贪婪匹配”'''

贪婪匹配与非贪婪匹配

# 带匹配的字符串
<script>123</script> # 正则表达式
<.*> '''默认贪婪匹配,尽可能多的匹配'''
匹配结果:<script>123</script> # 将贪婪变为非贪婪,只需要在量词的后面加上问好即可
<.*?> '''非贪婪匹配,尽可能少的匹配,结束条件由左右两边决定'''
匹配结果:<script>,</script>

取消转义

在正常的原生表达式中,要取消转义字符只有一种方法,'\', --> 1、取消一个: '\\n',  取消两个: '\\\\n'

在python的环境中,还提供另一种快捷方便的方法: r'D:\n\r\a'

正则表达式以及re模块的使用的更多相关文章

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

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

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

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

  3. 【Python爬虫】正则表达式与re模块

    正则表达式与re模块 阅读目录 在线正则表达式测试 常见匹配模式 re.match re.search re.findall re.compile 实战练习 在线正则表达式测试 http://tool ...

  4. Python与正则表达式[0] -> re 模块的正则表达式匹配

    正则表达式 / Regular Expression 目录 正则表达式模式 re 模块简介 使用正则表达式进行匹配 正则表达式RE(Regular Expression, Regexp, Regex) ...

  5. python 正则表达式re使用模块(match()、search()和compile())

    摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组.下表是常见的正则表达式属性: 函数/方法 描述 仅仅是re模块函数 compile(patt ...

  6. 正则表达式之re模块

    re模块一.什么是正则表达式与re模块?1.1 字符组1.2 元字符1.2.1 单个使用1.2.2 组合使用二.为什么要使用正则三.如何使用3.1 re模块的三种比较重要的方法3.1.1 findal ...

  7. python学习笔记(十)——正则表达式和re模块

    #正则表达式和re模块 # match(pattern, string,[flag]) #在字符串开始时进行匹配 # pattern 正则表达式 # string 要匹配的字符串 # [flag] 可 ...

  8. python正则表达式之re模块方法介绍

    python正则表达式之re模块其他方法 1:search(pattern,string,flags=0) 在一个字符串中查找匹配 2:findall(pattern,string,flags=0) ...

  9. python中的正则表达式(re模块)

    一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎 ...

  10. pytho day6 <正则表达式、常用模块、反射>

    本节介绍: 一:正则表达式: 正则表达并不是python 独有的.在各个语言里都有该语法的介绍.正则表达是处理字符串的强大的处理工具.拥有自己的独特的 处理方法.和处理引擎.虽然性能没有python ...

随机推荐

  1. css画叉叉(一般用于关闭按钮)

    css 一般用于右上角关闭弹窗 #pdclose { width: 18px; height: 18px; cursor: pointer; float: right; position: relat ...

  2. HTML5元素

    1.1结构元素 HTML5定义了一组新的语义化标签,目前主流浏览器均已支持,语义化标签使用标记元素的内容,虽然可以使用原有标签替换,但是它可以简化HTML页面设计,并且也为搜索引擎在抓取和索引网页的时 ...

  3. 微信小程序使用Websocket

    /** 初始化websocket stomp文档 http://jmesnil.net/stomp-websocket/doc/*/initSocket: function () {var that ...

  4. NPOI导出例子

    public static string ExportAOrder(ExportData data) { var cellHeard = new Dictionary<string, strin ...

  5. 【刷题-LeetCode】208. Implement Trie (Prefix Tree)

    Implement Trie (Prefix Tree) Implement a trie with insert, search, and startsWith methods. Example: ...

  6. macos下命令行通过ndk编译android下可以执行的ELF程序(并验证opencl的调用)

    源码如下,实现把一个JPG保存成灰度图格式的BMP 1 //jpg2bmp.cpp 2 #include <stdio.h> 3 #include <inttypes.h> 4 ...

  7. vue学习9-更新视图

    <!DOCTYPE html> <html lang='en'> <head>  <meta charset='UTF-8'>  <meta ht ...

  8. Vue.use()用法

    通常我们引入一个第三方组件形式的插件进来时,我们在main.js里面需要Vue.use('该插件名字'),比如引入一个vant组件 那么我们如何自己也来尝试将自己封装的组件以Vue.use()的形式来 ...

  9. golang中的rpc开发

    golang中实现RPC非常简单,官方提供了封装好的库,还有一些第三方的库 golang官方的net/rpc库使用encoding/gob进行编解码,支持tcp和http数据传输方式,由于其他语言不支 ...

  10. Tomcat-给Tomcat添加第三方jar包

    给动态web工程添加额外jar包 1,打开项目结构菜单操作界面,添加一个自己的类库 2,添加你当前类库需要的jar包 3,选择你添加的类库,给哪个模块使用 4,选择Artifacts选项,将类库添加到 ...