字符串操作方法有:

s = 'hello word'

s.find('l') 查询第一个l的索引

s.replace('ll','xx') 替换

s.split('w') 以w进行分割

这些都是完全匹配,要进入模糊匹配就需要引进正则表达式

正则表达式,主要作为字符串模糊匹配的作用

正则 元字符

. 点  ret = re.findall('w.r','hello world') . 点除了换行符以外,可以代指任何字符,一个点代表一个字符,点叫做通配符

尖角符^ ret = re.findall('^w.r','hello world') 从字符串的开头开始匹配,只从字符串开头开始匹配

$ 符 ret = re.findall('w.r$','hello world') 只在字符串最后位置进行匹配,

* 重复匹配  ret  = re.findall('wr*'hello world')  重复匹配 优先匹配*前第一个字符

+重复匹配 ret = re.findall('ab+','hello b word') 重复匹配,至少要一个b

? 重复匹配 ret = re.findall('a?b','aaaaaabsdsdabsdfsb') 重复0-1次a

{}重复匹配 ret = re.findeall('a{5}b','aaaaab') 重复匹配指定次数a,ret = re.findeall('a{1,3}b','aaasdasdn') 指定按区间匹配

[] 字符集  ret = re.findall('[a,b]','asdbasd'] 匹配a,或者b都可以。或的关系

[] 字符集 ret = re.findall('[a,*]),'as*') 取消元子符的特殊作用,这里*已经不是元子符了,就是作为*这个字符。这三个字符例外(\ ^ -)

ret = re.findall('[1-9]','asd1231')    1-9的意思

ret = re.findall([^t],'tasdasd') 取反,除t以外的所有字符ret = re.findall([^t,a],'asd') t,a 是一组,这里去除去t 和a 以外的其他字符

\ 正则里最重要的一个:

反斜杠后面跟元子符取出特殊功能

反斜杠后面跟元字符实现特殊功能

\d 匹配任何十进制数 等价于[0-9]

\D 匹配任何非十进制数字符 等价于[^0-9]

\s 匹配任何空白字符  re,findall('\sasa','asd sasa')

\S 匹配任何非空白字符

\w 匹配任何字母数字字符

\W 匹配任何非字母数字字符

\b 匹配一个特殊边界,单词和空格间的位置

####

re.search('sb','saasdsbasassb')  search方法只返回匹配的第一个值,后面匹配的就不返回了。

ret = re.search('sb','saasdsbasassb')  ret.group() 获取对象的值

()

匹配()里面的内容作为一组,所有的都匹配出来

print(re.search('(as)+','sdjkfasas').group())

| 管道符,匹配或者

##########

re 下面的方法

findall 返回所有匹配只

search 返回一个对象,包含匹配第一个的信息,通过对象的group方法取第一个值

match 只在字符串开头进行匹配,也只返回一个对象,对象也通过调用group方法取值

split  re.split('[j,s]','adjkasall')  分割,这个要先用js进行分割,分割完后剩下的内容再使用s进行分割。

re.sub 替换  re.sub('a..x','s..b','asdasdasassxasd') 规则,替换成的内容,被替换的字符串

re.compile  编译一个匹配规则,用于多次调用  obj=re.complie('\.com')   obj.findall('asdasd.comasdasd')

python语法_模块_re(正则表达)的更多相关文章

  1. python语法_模块

    方便调用的分组函数文件,一个py模块就是一个模块,模块分三类 python标准库 第三方模块 应程序自定义模块 模块的掉用: 可以把多个功能(函数)包含在一个模块文件里,调用时直接使用import 就 ...

  2. python语法_模块_os_sys

    os模块:提供对此操作系统进行操作的接口 os.getcwd() 获取python运行的工作目录. os.chdir(r'C:\USERs') 修改当前工作目录. os.curdir 返回当前目录 ( ...

  3. python语法_模块_loggin_hashlib_conifgparser

    loggin模块 日志模块,级别从上往下依次增强,debug 和 info 默认不输出信息,只有后三种级别有输出信息 loggin.debug('') loggin.info('') loggin.w ...

  4. python语法_模块_time_datetime_random

    模块:可以被公共调用的. time import time print(time.time()) 时间戳方式显示时间. time.sleep(3) 休眠3秒 time.clock() 计算cpu执行时 ...

  5. python——re模块(正则表达)

    python——re模块(正则表达) 两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.c ...

  6. Python 进阶_模块 & 包

    目录 目录 模块的搜索路径和路径搜索 搜索路径 命名空间和变量作用域的比较 变量名的查找覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模块 ...

  7. python语法_函数

    ---恢复内容开始--- 函数: 1 减少重复代码 2 定义一个功能,需要直接调用 3 保持代码一致性 def  funcation_name(参数s): 功能代码块0 参数可以为多个,传入时按照前后 ...

  8. python语法_装饰器

    装饰器的知识点储备: 1 作用域 2 高阶函数 3 闭包 内部函数,对外部作用作用域的变量进行了引用,该内部函数就认为是闭包, def outer(): x=10 def inner(): print ...

  9. python语法_文件操作

    牢记“”“能调用方法的一定是对象”“” 文件的操作流程, 1 建立文件(打开文件)open('filename','模式').read() [这一步其实就是创建对象] 2 通过句柄进行操作 3 关闭o ...

随机推荐

  1. SVG初尝试(一)

    SVG简介 SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector Graphics).其他图像格式都是基于像素处理的,SVG 则是属于对图像的形状描述,所以它 ...

  2. 2018开源中国最受欢迎的中国软件MyBatis-Plus

    2018开源中国最受欢迎的中国软件MyBatis-Plus 官方网址:https://mp.baomidou.com 中国软件,中文文档 什么是MyBatis-Plus? 进入官方第一句话:为简化开发 ...

  3. centos 配置.Net core 环境并部署dotnet Core文件

    一.配置环境[Microsoft dotnet Core] 1) Add the dotnet product feed sudo rpm -Uvh https://packages.microsof ...

  4. Flink on yarn的配置及执行

    1. 写在前面 Flink被誉为第四代大数据计算引擎组件,即可以用作基于离线分布式计算,也可以应用于实时计算.Flink可以自己搭建集群模式已提供为庞大数据的计算.但在实际应用中.都是计算hdfs上的 ...

  5. Angular Material 白天模式和黑夜模式

    Material design调色板 https://www.materialpalette.com/ 明暗:虽然颜色不变,但是针对白天黑夜有做不同处理. 叠加:对话框,弹出菜单,事先是没有加载的.是 ...

  6. 3DMath

    线与面相交的计算 https://zh.wikipedia.org/wiki/%E7%BA%BF%E9%9D%A2%E4%BA%A4%E7%82%B9 什么是参数方程? 参数是参变数的简称.它是研究运 ...

  7. XYZZY spfa 最长路 判环

    题意: 有n个点  m条边  每个边有权值 一开始有一百血  每次经过一条路都会加上其权值 判断是否能够到达n 显然  有正环的时候肯定能够到达 最短路好题!!!!!!! 显用folyed判断是否联通 ...

  8. 浅谈Java线程安全

    浅谈Java线程安全 - - 2019-04-25    17:37:28 线程安全 Java中的线程安全 按照线程安全的安全程序由强至弱来排序,我们可以将Java语言中各种操作共享的数据分为以下五类 ...

  9. SVM原理 (转载)

    1. 线性分类SVM面临的问题 有时候本来数据的确是可分的,也就是说可以用 线性分类SVM的学习方法来求解,但是却因为混入了异常点,导致不能线性可分,比如下图,本来数据是可以按下面的实线来做超平面分离 ...

  10. Vue-Router嵌套路由

    1:查看router-view所对应的位置,是属于顶级出口还是存在于某个组件当中 2:当router-view存在于某个组件当中时 const User = { template: ` <div ...