python_re正则表达
re模块就本质而言,正则表达式(或RE)是一种小型的、高度专业化的编程语言,(在python中)它内嵌
在Python中,并通过re模块实现,正则表达式模块被编译成一系列的字节码,然后由用C编写的匹配引擎执行。
字符匹配(普通字符、元字符)
#1、正则表达式使用: 用来匹配字符的
普通字符:大多数字符和字母都会和自身匹配
import re
# s = "hello world"
#
# print(s.find("llo"))
# ret = s.replace("ll","xx")
# print(ret)
# print(s.split("w"))
2元字符: . ^ $ * + ? { } [] | () \
#. 任意匹配(除\n外)
ret = re.findall("h...o","hello world")
print(ret)
#^ 从前匹配
ret = re.findall("^h...o","hewdo world hexno")
print(ret)
#$ 从后匹配
ret = re.findall("w..d$","wdifdhello sdwordwold")
print(ret)
#* 重复匹配
ret = re.findall("ab*","hello world i come aback")
print(ret)
#+ 至少出现一次匹配
ret = re.findall("a+b","adsdfbadbababdjfn")
print(ret)
#? [0,1] 最多出现一次匹配
ret = re.findall("a?b","abdsdfbadbababdjfn")
print(ret)
#{ } 贪婪匹配
ret = re.findall("a{1,3}b","adsdfbaaabbabbbdaadbababdjfn") #{1,}等价于{1,+00}
print(ret)
结论:* 等于 {0到正无穷} + 等价于{1到正无穷} ?等价于{0,1}
#[]字符集:取消元字符的特殊功能
ret = re.findall("[w,,]","awdx.,")
print(ret)
#反斜杠后边跟普通字符实现特殊功能
\d 匹配任何十进制数 它相当于类[0-9]
\D 匹配任何非数字字符 它相当于类[^0-9]
\s 匹配任何空白字符 它相当于类 [ \t\n\r\f\v]
\S 匹配任何非空白字符 它相当于类 [^ \t\n\r\f\v]
\w 匹配任何字母数字字符,它相当于类 [1-zA-Z0-9_]
\W 匹配任何非字母数字字符,它相当于类 [^1-zA-Z0-9_] #正则表达式的方法:
1、findall(): 所有结果都返回到一个列表里
2、search(): 返回匹配到的一个对象(object),对象可以调用group()返回结果
3、match(): 只在字符串开始匹配时匹配,也返回匹配到的第一个对象(object),对象可以调用group ret = re.match("assd","asdgfhjdk")
print(ret)
print(ret.group())
python_re正则表达的更多相关文章
- Javascript正则构造函数与正则表达字面量&&常用正则表达式
本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...
- HttpGet协议与正则表达
使用HttpGet协议与正则表达实现桌面版的糗事百科 写在前面 最近在重温asp.net,找了一本相关的书籍.本书在第一章就讲了,在不使用浏览器的情况下生成一个web请求,获取服务器返回的内容.于 ...
- js正则表达test、exec和match的区别
test的用法和exec一致,只不过返回值是 true false. 以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用. 最近开发遇到一些 ...
- 正则表达示 for Python3
前情提要 从大量的文字内容中找到自己想要的东西,正则似乎是最好的方法.也是写爬虫不可缺少的技能.所以,别墨迹了赶紧好好学吧! 教程来自http://www.runoob.com/python3/pyt ...
- Python之面向对象和正则表达(代数运算和自动更正)
面向对象 一.概念解释 面对对象编程(OOP:object oriented programming):是一种程序设计范型,同时也是一种程序开发的方法,实现OOP的程序希望能够在程序中包含各种独立而又 ...
- JS写法 数值与字符串的相互转换 取字符中的一部分显示 正则表达规则
http://www.imooc.com/article/15885 正则表达规则 <script type="text/javascript"> </scrip ...
- shell正则表达
shell正则表达 .*和.?的比较: 比如说匹配输入串A: 101000000000100 使用 1.*1 将会匹配到1010000000001,匹配方法:先匹配至输入串A的最后, 然后向前匹配,直 ...
- python 正则表达提取方法 (提取不来的信息print不出来 加个输出type 再print信息即可)
1,正则表达提取 (findall函数提取) import re a= "<div class='content'>你大爷</div>"x=re.finda ...
- grep 正则表达
常见的 grep 正则表达参数 -c # 显示匹配到得行的数目,不显示内容 -h # 不显示文件名 -i # 忽略大小写 -l # 只列出匹配行所在文件的文件名 -n # 在每一行中加上相对行号 -s ...
随机推荐
- Linux安装nginx的环境要求
# Linux下切记不能乱删东西!我把pcre强制删除后,什么命令都不能使用了,系统奔溃,血的教训! nginx是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境. 一. ...
- Day3-G - Task HDU4864
Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this ...
- idea2019 jsp页面加载不到静态文件原因No mapping found for HTTP request with URI
最近在使用idea2019 学习ssm,但是发现我在项目引用的静态文件怎么都无法加载出来,找了很久才解决~~ 给上目录结构图: 第一种:使用 ${pageContext.request.context ...
- sklearn的train_test_split()各函数参数含义解释(非常全)
sklearn之train_test_split()函数各参数含义(非常全) 在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,从 sklearn.model_selection ...
- NO20文件属性--inode--block-企业场景题
壹 Linux文件属性描述:在Linux里一切皆文件Linux系统中的文件或目录的属性主要包括:索引节点(inode).文件类型.权限属性.链接数.所归属的用户和用户组.最近修改时间等内容. 例子: ...
- ubuntu 环境下pycharm的 安装与激活教程
1. 基本安装: 1.1 打开Ubuntu的应用市场,并在搜索栏搜索pycharm,结果如下图所示 1.2 选择pro版本进行安装,结果如下图所示: 1.3打开安装后的pycharm,如果出现下图所示 ...
- 基于vue-router的移动端网页的路由管理
本篇代码示例:github 前提:不关注移动端浏览器的前进事件 涵盖功能: 1,管理路由的历史记录 2,切页动画的实现 3,处理流程类页面的回退事件 描述: 流程类页面的回退事件的解释: 以注册 ...
- java中数组输出的方式
方式1:遍历输出 public class Main { public static void main(String[] args) { int[] ns = { 1, 4, 9, 16, 25 } ...
- php 文件缓存 include vs serialize vs json_encode
大神:http://techblog.procurios.nl/k/news/view/34972/14863/cache-a-large-array-json-serialize-or-var_ex ...
- leetcode617 Merge Two Binary Trees
""" Given two binary trees and imagine that when you put one of them to cover the oth ...