分享

Py之re:re正则表达式库的简介、入门、使用方法之详细攻略

 Four兄 2019-08-29

目录

re正则表达式库的简介

1、正则表达式元字符

re正则表达式库的入门

1、re.match函数

2、re.search方法

3、检索和替换

4、re.compile 函数

re正则表达式库的使用方法

1、去掉字符串中的所有括号及括号内容


re正则表达式库的简介

      正则表达式在很多语言里都支持,python也不例外,re模块就是正则表达式的应用  正则表达式对字符串的逻辑操作,主要是对字符串的一种过滤,用“元字符” 与“普通字符”组成一个字符串规则对已知的字符串或文本过滤出自己想要的字符串。

1、正则表达式元字符

\

转义字符,将后边紧跟着的字符变成特殊字符,或将后边的特殊字符变成普通字符

如:在正则表达式中,'\n'换行符,'\\'则代表一个普通字符'\'

^匹配第一行行首,匹配多行需要传参 flags=re.MULTILINE
$匹配最后一行行尾,匹配多行需要传参 flags=re.MULTILINE
.除'\r''\n'外,匹配任意的单个字符,要使'.'匹配换行符,flags=re.DOTALL
|或,如 'aaa|bbb|ccc',表示'aaa','bbb','ccc'三选一
?匹配前边的子表达式0次或1次,等价于{0,1}
+匹配前边的子表达式1次或多次,等价于{1,}
*匹配前边的子表达式0次或多次,,等价于{0,}
{}{n}匹配前边的子表达式n次,{n,}匹配前边的子表达式至少n次 即:>= n,{n,m}匹配前边的子表达式n~m次,即:n<= 表达式 <=m
()分组,从1开始,从左至右数'('为第几组,下标0为全部分组
[]

字符集匹配[]中的人一个字符,之匹配一次,如[abc]:表示'a','b','c'三选一。也可以给定范围(必须是连续的才行),如[a-z]:表示a到z任意一个字符。

还可以取反,如[^abc]:除'a','b','c'外的任意字符。注:[]中只有'^','-','\'三个特殊字符,其中'\'代表转义字符,其它的都代表原本普通的字符,如:[.]只是一个普通的点字符

注:要使用元字符本身的普通字符,请使用转义字符转义一下,如 :'\(' 在正则表达式中代表普通给'('字符,其它的雷同

re正则表达式库的入门

1、re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
语法:re.match(pattern, string, flags=0)
参数说明

  • pattern    匹配的正则表达式

  • string    要匹配的字符串。

  • flags    标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

2、re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。
语法:re.search(pattern, string, flags=0)
参数说明

  • pattern    匹配的正则表达式

  • string    要匹配的字符串。

  • flags    标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

3、检索和替换

Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。
语法:re.sub(pattern, repl, string, count=0, flags=0)
参数

  • pattern : 正则中的模式字符串。

  • repl : 替换的字符串,也可为一个函数。

  • string : 要被查找替换的原始字符串。

  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

4、re.compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
语法:re.compile(pattern[, flags])
参数

  • pattern : 一个字符串形式的正则表达式

  • flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

    • re.I 忽略大小写

    • re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境

    • re.M 多行模式

    • re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)

    • re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库

    • re.X 为了增加可读性,忽略空格和 # 后面的注释

re正则表达式库的使用方法

1、去掉字符串中的所有括号及括号内容

  1. #去掉字符串中的所有括号及括号内容
  2. import re
  3. str='今天(1)天气{1}非常好啊,[1]是的。'
  4. str_sub = re.sub(u'\\(.*?\\)|\\{.*?}|\\[.*?]', '', str)
  5. print(str_sub)
  6. '今天天气非常好啊,是的。'

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多