正则表达式re(python)

python的re

元字符metacharacter
. 除换行符外的任意一个字符
[abcd] 集合里的任意一个字符
[^abcd]除集合里的字符的任意一个字符
[a-z] 字符范围,范围内的任意一个字符
\b 单词的边界 例:\ba在文本中找到以a开头的字符,a\b以a结尾的字符
\B 不匹配单词的边界 例:t\B包含t不以t结尾的字符,\Bt含有t不以t开头的字符
\d 任意一位0-9的数字
\D 一位非数字
\s 一位空白字符,包括换行符、制表符、空格
\S 一位非空白字符
\w 匹配[a-zA-Z0-9],包括中文
\W 匹配\w之外的字符
重复
* 重复0次或多次
+ 重复至少一次
?重复0次或1次
{n} 重复n次
{n,} 重复至少n次
{n,m} 重复n-m次

x|y 匹配x或者y
(pattern) 分组,分配组号,从1开始
(?:pattern) 去掉分组,只为改变优先级
(?<name>exp) 给分组命名
零宽断言
(?=exp) 断言exp一定在匹配的右边出现
(?<=exp) 断言exp一定在匹配的左边出现
(?!exp) 断言exp一定不在匹配的右边出现
(?<!exp) 断言exp一定不在匹配的左边出现
断言不占分组号

贪婪和非贪婪
默认是贪婪模式,尽可能多的取
*?匹配任意次,尽可能少重复
+?匹配至少1次,尽可能少重复
?? 匹配0次或1次,尽可能少重复
{n,}? 匹配至少n次,尽可能少重复
{n,m}? 匹配至少n次,至多m次,尽可能少重复

单行模式和多行模式
单行模式:.可以匹配所有字符,包括换行符。
^表示整个字符串的开头,$整个字符串的结尾
多行模式:.不包括换行符
^表示行首,$表示行位

 

python的RE
使用re模块(import re)
re.M多行模式,re.S单行模式,re.I忽略大小写
编译:re.compile(pattern,flags=0)
regex=re.compile(pattern,flags=0)
单词匹配
re.match(pattern,string,flags=0)
regex.match(string,[2,4])
匹配从字符串的开头匹配,regex可以重新设定开始和结束位置,返回match对象

re.search(pattern,string,flags=0)
regex.search(string,[2,4])
从头搜索直到第一个匹配,regex可以重新设定开始和结束位置,返回match对象
re.fullnmath(pattern,string,flags=0)
regex.fullmatch(string,[2,4])
整个字符串和正则表达式匹配

全部匹配
re.findall(pattern,string,flags=0)
regex.findall(string,[2,4])
整个字符串,从左至右匹配,返回所有匹配项的列表
re.finditer(pattern,string,flags=0)
regex.finditer(string,[2,4])
整个字符串,从左至右匹配,返回所有匹配项,返回迭代器
每次迭代返回的是match对象

匹配替换
re.sub(pattern,replacement,string,count=0,flags=0)
regex.sub(replacement,string,count=0)
使用pattern对字符串string进行匹配,对匹配项使用replacement替换,
replacement可以是string,bytes,function。

re.subn(pattern,replacement,string,count=0,flags=0)
regex.subn(replacement,string,count=0)
同sub 返回一个元组(new_string,number_of_subs_made)

分割字符串
re.split(pattern,string,maxsplit=0,flags=0)

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88245

(0)
10590628461059062846
上一篇 2017-11-06 19:37
下一篇 2017-11-07 09:33

相关推荐

  • vsftp的使用(土著篇)

        这个vsftp本地用户登录模式(简称土著)配置方法论坛网站有一堆堆的,都是默认的东西,就那么多也写不出什么花来。     还是直接上酸菜好了,接着上回提到的vsftp的接着用,首先查看下你vsftp的配置情况。      这是上次匿名用户的配置,稍微得改一改。 配置本地用户登录的配…

    2017-07-30
  • 系统自动化安装

    本章内容 系统安装过程配置anaconda自动化安装系统 安装程序 CentOS系统安装 系统启动流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init anaconda: 系统安装程序 tui: 基于图形库curses的文本窗口 gui:图形窗口 安装程序启动过程 MBR…

    Linux干货 2016-09-19
  • Linux学习总结及练习&day08-sed文本处理工具

    第一部分、Linux文本处理三剑客之sed(Stream EDitor)文本编辑工具     一、sed的基本功能工作原理     sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令…

    Linux干货 2016-08-10
  • nginx及I/O介绍原理

    上课笔记

    2018-03-12
  • ansible 入门与进阶

    ansible 入门与进阶 Configuration、Command and Control 是什么 ? SSH-based configuration management, deployment, and task execution system 运维工具的分类: agent:基于专用的agent程序完成管理功能,puppet, func, zabb…

    2016-11-09
  • Linux文件管理命令与bash的工作特性

    Shell程序在接受到用户执行命令的请求时,在分析完成之后,最左侧的字符串会被当作命令;
    命令查找机制:查找内部命令时,根据PATH环境变量中设定的目录,从左至右逐个搜索目录下的文件名;

    2018-03-11