Python中使用正则的两种方式

在Python中有两只能够使用正则表达式的方式:

  • 直接使用re模块中的函数
import re
re_string = "{{(.*?)}}"
some_string="this is a string with {{words}} enmbedded in {{curly brackets}}.."
for match in re.findall(re_string, some_string):
    print("MATCH->", match)

MATCH-> words
MATCH-> curly brackets

直接使用re模块中的函数

  • 创建一个它编译的正式表达式对象,然后使用对象中的方法
import re
re_obj = re.compile("{{.*?}}")
some_string="this is a string with {{words}} enmbedded in {{curly brackets}}.."
for match in re_obj.findall(some_string):
   print("MATCH->", match)

MATCH-> {{words}}
MATCH-> {{curly brackets}}

使用编译的对象

我们可以根据个人喜好选择使用其中一种正则表达式的方法,然而,使用第二种方法对性能好很多

原始字符串与正则表达式

In [12]: raw_pattern = r'\b[a-z]+\b'
In [13]: non_raw_pattern = '\b[a-z]+\b'
In [14]: some_string = 'a few little words' 

In [15]: re.findall(raw_pattern, some_string)
Out[15]: ['a', 'few', 'little', 'words']
In [16]: re.findall(non_raw_pattern, some_string)
Out[16]: []

正则表达式模式"\b"匹配单词边界。raw_patern匹配了在some_string中合适的单词边界,而non_raw_patter根本没有任何匹配

raw_pattern将"\b"识别为两个字符,而不是解析为转移字符中的退格字符

non_raw_pattern则将"\b"解析为转移字符中的退格字符

findall()

In [19]: import re                                                                                                       

In [20]: re_obj = re.compile(r'\bt.*?e\b')                                                                               

In [21]: re_obj.findall("tim tame tune tint tire")
Out[21]: ['tim tame', 'tune', 'tint tire']

模式没有定义任何组,因此findall()返回一个字符串列表

有趣的是返回列表的

Python使用正则的更多相关文章

  1. python re 正则

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  2. python 速记正则使用(转)

    目录 python 速记正则使用(转) 正则表达式语法 字符与字符类 量词 组与捕获 断言与标记 条件匹配 正则表达式的标志 Python正则表达式模块 四大功能 两种方法 常用方法 匹配对象的属性与 ...

  3. python的正则re模块

    一. python的正则 python的正则模块re,是其内置模块,可以直接导入,即import re.python的正则和其他应用的正则及其相似,有其他基础的话,学起来还是比较简单的. 二. 正则前 ...

  4. python - 手机号正则匹配

    Python 手机号正则匹配 # -*- coding:utf-8 -*- import re def is_phone(phone): phone_pat = re.compile('^(13\d| ...

  5. Python(正则 Time datatime os sys random json pickle模块)

    正则表达式: import re #导入模块名 p = re.compile(-]代表匹配0至9的任意一个数字, 所以这里的意思是对传进来的字符串进行匹配,如果这个字符串的开头第一个字符是数字,就代表 ...

  6. Python之正则

    从学习Python至今,发现很多时候是将Python作为一种工具.特别在文本处理方面,使用起来更是游刃有余. 说到文本处理,那么正则表达式必然是一个绝好的工具,它能将一些繁杂的字符搜索或者替换以非常简 ...

  7. 转--python之正则入门

    原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法 ...

  8. Python基础(正则、序列化、常用模块和面向对象)-day06

    写在前面 上课第六天,打卡: 天地不仁,以万物为刍狗: 一.正则 - 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法: - 在线正则工具:http://tool ...

  9. python re正则

    一:什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并通过 r ...

随机推荐

  1. [JQuery代码]超酷鼠标滑过背景高亮效果

    1.效果及功能说明 鼠标滑过悬停特效,div css制作产品列表图片布局通过鼠标滑过产品图片背景高亮闪烁显示,产品标题滑动显示或隐藏 2.实现原理 首先定义好一个重复实现效果的方法,然后定义光带出现速 ...

  2. 边框画的三角形给shadow

    本文地址:http://www.cnblogs.com/veinyin/p/8690882.html  要写一个对话气泡样式,我们首先想到的当然给是一个盒子,然后用边框画一个三角形定位过去. 如果不需 ...

  3. react:在一个组件中调用别的组件中的方法

    先介绍一下要解决的问题:react中一个组件A和一个组件B,其中B是被connect(connect是redux中的方法)包装过的组件,包装成BContainer,A和BContainer的关系是兄弟 ...

  4. POJ 2438 Children’s Dining (哈密顿图模板题之巧妙建反图 )

    题目链接 Description Usually children in kindergarten like to quarrel with each other. This situation an ...

  5. sklearn_SVC_支持向量机

    # coding:utf-8 import numpy as np from sklearn.svm import SVC import matplotlib.pyplot as plt #生成数据 ...

  6. (一)利用 mdb 调试获取 nvlist_t 中 nvpair_t(name/value) 对

    服务器:192.168.2.122 root@2236:~# mdb -k> ::spaADDR                 STATE NAME                       ...

  7. 【HASPDOG】卸载

    rpm -qa | grep aksusdb rpm -e aksusdb... rm -rf /var/hasplm

  8. wifi两种工作模式

    AP:即无线接入点,是一个无线网络的中心节点.通常使用的无线路由器就是一个AP,其它无线终端 可以通过AP相互连接. STA:即无线站点,是一个无线网络的终端.如笔记本电脑.PDA等. 1>工作 ...

  9. 3->集群架构主机克隆教程

    centos7系统集群主机克隆: 有道笔记链接地址

  10. Ubuntu_搜狗输入法安装

    前言 由于很少使用Linux系统,所以闲下来打算看一看,在安装完成后,遇到无法输入中文的问题.我使用的是小鹤双拼,所以习惯使用搜狗输入法,本文记录一下如何在ubuntu系统下安装小鹤双拼 由于前两次并 ...