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. soj1011. Lenny's Lucky Lotto

    1011. Lenny's Lucky Lotto Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Lenny like ...

  2. jQuery中下拉框select的操作方法详解

    最近在写页面的时候常常遇到要动态增删改下拉框select的情况,由于我比较习惯用jquery框架来架构我的前端js,所以就顺便把各种jquery操作下拉框select的方法总结了一下,收藏起来以便下次 ...

  3. vue_router 动态路由

    配置子路由: 路由的视图都需要使用view-router 子路由也可以嵌套路由使用: children来做嵌套如上图 使用location.页面name就可以做页面跳转 mounted:挂载,延迟跳转 ...

  4. 【多视图几何】TUM 课程 第3章 透视投影

    课程的 YouTube 地址为:https://www.youtube.com/playlist?list=PLTBdjV_4f-EJn6udZ34tht9EVIW7lbeo4 .视频评论区可以找到课 ...

  5. jquery easyui 扩展验证

    $.extend($.fn.validatebox.defaults.rules, {  idcard : {// 验证身份证          validator : function(value) ...

  6. 【比赛游记】THUSC2018酱油记

    day -1 早上4:30就要起来去飞机场…… 7点的飞机,10:30就到北京了. 北京的街景并没有我想像的漂亮……大概是因为我在四环外〒▽〒 晚上还有CF div3场,果断的去水了,因为太累就没有打 ...

  7. C# 反射获取和设置值

    /// <summary> /// 遍历泛型 /// </summary> /// <typeparam name="T"></typep ...

  8. linux强制踢掉登录用户【转】

    [root@Wang ~]# w :: up :, users, load average: 0.71, 0.58, 0.57 USER TTY FROM LOGIN@ IDLE JCPU PCPU ...

  9. 高性能.NET MVC之QMVC!

    ASP.NET!这个词代表者一个单词Fat!因为他总是捆绑着太多的太多的类,太多太多的各种功能!你也许会用到,如果你反编译或阅读他们开源的源码,你会不会犹如在大海中找不到方向?不管是Web form ...

  10. python 写入execl记录

    记录代码中关于写execl的操作 # 创建execl workbook = xlwt.Workbook(encoding='utf8') # 创建样式实例 style = xlwt.XFStyle() ...