Python学习日记(十四) 正则表达式和re模块

正则表达式:

它是字符串的一种匹配模式,用来处理字符串,可以极大地减轻处理一些复杂字符串的代码量

字符组:它是在同一位置可能出现的各种字符组成了一个字符组,用[]表示,但是它的结果只能是一个数字或者一个大写字母或小写字母等

下面测试以该网站为例http://tool.chinaz.com/regex/

#正则表达式              匹配字符串              匹配结果
#[0-9]                     9                     9       [0-9]的写法就相当于在用[0123456789]
#[0123456789]              0                     0
#[a-z]                     1                    None     这里只匹配小写字符a-z而不匹配数字
#[a-z]                     z                     z
#[A-Z]                     A                     A       这里只匹配大写字符串
#[A-Z0-5a-c]              A6b                   A、b     这里的数字范围只有到0-5所以没匹配到6

元字符:

1.‘.‘ 匹配出换行符以外的任意字符

#正则表达式              匹配字符串               匹配结果
#    .                     a                     a
#    .                     1                     1
#    .                     &                     &
#    .                   换行符                  None 

2.‘\w‘ 匹配字母或下划线或数字--word

等价于[A-Z0-9a-z_]

#正则表达式              匹配字符串               匹配结果
#    \w                    a                     a
#    \w                    1                     1
#    \w                    &                    None
#    \w                  换行符                  None
#    \w                    _                     _

3.‘\s‘ 匹配任意的空白符--space

匹配字符串如果什么都不写也会匹配到一个结果,这里的空白符有空格、tab键、回车等空白字符

4.‘\d‘ 匹配任意的数字--digit

等价于[0-9]

#正则表达式              匹配字符串             匹配结果
#    \d                    a                  None
#    \d                    1                   1
#    \d                    &                  None

5.‘\W‘ 匹配非字母或数字下划线

和‘\w‘的结果相反,且空白字符也可以匹配,如果用[\w\W]就相当于全局匹配的效果;等价于[^A-Z0-9a-z_]

6.‘\D‘ 匹配非字符

和‘\d‘的结果相反,且空白字符也可以匹配;等价于[^0-9]

7.‘\S‘ 匹配非空白字符

和‘\s‘的结果相反,除了空白字符串其他都匹配

8.‘\n‘ 匹配一个换行符

9.‘\t‘ 匹配一个制表符(tab)

10.‘\b‘ 匹配一个单词的结尾

#正则表达式              匹配字符串             匹配结果
#    .\b                  abx                  x        匹配一个字符并返回它的末尾字符
#    b\b                  abb                  b        匹配一个字符串如果它的结尾是b就返回
#    b\b                  aaa                 None

11.‘\f‘ 匹配一个换页符

12.‘\r‘ 匹配一个回车符

13.‘\v‘ 匹配一个垂直制表符

14.‘\B‘ 匹配一个非单词边界

#正则表达式              匹配字符串             匹配结果
#    v\B                  vers                 v
#   ve\B                  vers                 ve
#    s\B                  vers                None

15.‘\num‘ 匹配一个正整数

#正则表达式              匹配字符串             匹配结果
#   (.)\1                 1122               11、22        匹配连续相邻的两个字符

16.‘^‘ 匹配字符串开始

相当于startswith()

#正则表达式              匹配字符串             匹配结果
#  ^[A-Z]                A456A                 A

17.‘$‘ 匹配字符串结束

相当于endswith()

#正则表达式              匹配字符串             匹配结果
#  [A-Z]$                 ASD                  D

18.....

原文地址:https://www.cnblogs.com/Fantac/p/11403187.html

时间: 2024-10-13 21:50:02

Python学习日记(十四) 正则表达式和re模块的相关文章

我的python学习--第十四天(二)

一.ansible api 在了解python的ansible api之前,先简单了解一下ansible. ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: 连接插件connection p

Python 学习日记 第四天

日常鸡汤: 我们大部分人努力的程度,还不到拼天赋的时候 一.列表的简介: 列表是python的基础数据类型之一,它是以 [ ] 括起来,每个元素用 逗号(,)隔开,而且可以存放各种数据类型,列表具有索引和切片 二.列表的索引和切片 1.列表的索引 1 lst = ['a' , 'b', 'c', 'd', 'e'] 2 3 print(lst[0]) # 获取第一个元素,输出为a 4 print(lst[2]) # 获取第三个元素,输出为c 2.列表的切片 1 lst = ['a','b','c

python学习八十四天:爬虫基础

爬虫基础 爬虫相关概念简介 什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆卖瓜的意思),但是php在实现爬虫中支持多线程和多进程方面做的不好. 2.java:可以实现爬虫.java可以非常好的处理和实现爬虫,是唯一可以与python并驾齐驱且是python的头号劲敌.但是java实现爬虫代码较为臃肿,重构成本较大. 3.c.c++:可以实现爬虫.但是

python学习第十四节(正则)

python2和python3都有两种字符串类型strbytes re模块find一类的函数都是精确查找.字符串是模糊匹配 findall(pattern,string,flags) replace函数'hello python'.replace('p','P')'hello Python' a='sadfadf232wwewfr323rwef34534trwef'import rew=re.findall('\d','sadfadf232wwewfr323rwef34534trwef')w=r

python学习笔记(十四) - easy_install安装与使用

一. 背景知识 在使用python的时候,经常会使用到本身没有安装的第三方模块,这时我们就需要使用easy_install 二. 使用方法 1. 下载easy_setup.py的源代码:http://pypi.python.org/pypi/setuptools 2. 用记事本存放源码并命令为easy_setup.py 3. 双击运行或在命令行运行:python easy_setup.py 4. 在python的安装目录python\scripts目录中可以看到有好几个easy_install的

python学习第十四天 -面向对象编程基础

python也是支持面向对象编程的.这一章节主要讲一些python面向对象编程的一些基础. 什么是面向对象的编程? 1.面向对象编程是一种程序设计范式 2.把程序看做不同对象的相互调用 3.对现实世界建立对象模型 面向对象编程的基本思想: 1.类用于定义抽象类型 2.实例根据类的定义被创建出来 如何定义一个类并创建实例? >>> class Animal(object): pass >>> dog = Animal() >>> cat = Animal

python学习笔记(十四): unittest

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoader是用来加载TestCase到TestSuite中的 TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信

python学习三十四天函数高阶函数定义及用法

python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def test(n): print(n) test(dac) 输出结果为 函数类型function 2,把函数做为返回值,也是高阶函数 def test(x,y): return abs,x,y 输出结果为 列表,包含 函数,参数 文章来自(www.96net.com.cn) 原文地址:https://www.

python学习第十四课--CSS

CSS css.doyoe.com Cascading Style Sheets 在标签中使用 style='xx:xxx;' 在页面中嵌入 <style type="text/css"> </style > 块 引入外部css文件  <link rel="stylesheet" type="text/css" href="mystyle.css"/> 1.   标签选择器 div  a