加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

re正则表达式

发布时间:2020-12-14 05:34:49 所属栏目:百科 来源:网络整理
导读:目录 正则表达式 元字符 re模块 方法 正则表达式 Regular Expression,缩写regex,regexp,RE等 正则表达式式文本处理的重要技术,用它可对字符串按照某种规则进行检索 元字符 代码 说明 举例 [abc] 表示一个字符位置,匹配字符集合中的任意一个字符 [abc]匹配app

目录

  • 正则表达式
    • 元字符
  • re模块
    • 方法

正则表达式

Regular Expression,缩写regex,regexp,RE等

正则表达式式文本处理的重要技术,用它可对字符串按照某种规则进行检索

元字符

代码 说明 举例
[abc] 表示一个字符位置,匹配字符集合中的任意一个字符 [abc]匹配apple中的‘a‘
[^abc] 表示一个字符位置,匹配除去集合内字符的任意一个字符 [^abc]匹配apple中的‘p‘‘p‘‘l‘‘e‘
[a-z] 表示一个字符位置,表示匹配范围内的字符(闭区间) [a-z][0-9]
[^a-z] 表示一个字符位置,表示除去范围内的字符(闭区间) [^a-z][^0-9]
d 表示一个字符位置,[0-9]中一个数字
D 表示一个字符位置,表示[^0-9]中非数字
s 表示一个字符位置,匹配一个空白字符包括换行,制表符,空格[frntv]
S 表示一个字符位置,匹配一个非空白字符
w 表示一个字符位置,匹配[a-zA-Z0-9]包括中文
W 表示一个字符位置,匹配w之外的字符
. 表示一个字符位置,匹配除换行符外任意一个字符 abc. .abc
* *前一个字符可以重复0到无数次
+ +前一个字符重复至少一次
? ?前一个字符重复0次或者一次
^ 表示以xxx开头 ^ab 表示以ab开头的
$ 以xxx结尾 ab$ 表示以ab结尾的
{n} 重复固定n次 ew{1}单词中e后面只能有一个非空白字符
{n,} 重复至少n次 ew{1,}等价于ew+
b 匹配的单词的边界 bb找到文本中b开头的单词
x|y 匹配x或者y

没写一个字符位置的就是一个或多个字符位置

  • 单行模式:.可以匹配所有字符,包括换行符,^表示整个字符串的开头,$表示整个字符串的结尾 使用re.S进入单行模式
  • 多行模式:.可以匹配存了换行符之外的字符,^表示行首,$表示行尾.开始指的是n后紧接着下一个字符,结束指的是n前的字符 默认多行模式

    捕获(分组)

s = 'abc abcd abcfdd'
print(re.findall('a(.)c(d)',s))
>>>[('b','d')]

只返回a后面有东西,c后面有d 匹配后返回二元组列表

贪婪模式

s = 'abcdefgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbg'
print(re.findall('a.*g',s))
>>>['abcdefgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbg']

非贪婪模式

s = 'abcdefgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbg'
print(re.findall('a.*?g',s))
>>>['abcdefg']

re模块

常量

常量 说明
re.M 多行模式
re.S 单行模式
re.I 忽略大小写
re.X 忽略表达式中空白字符

使用| 位或运算开启多种选项

方法

编译

re.complile(pattern,flags=0)

设定flags,编译模式,返回正则表达式对象regex。

pattern就是正则表达式字符串,flags是选项。正则表达式需要被编译。

单次匹配

re.match(pattern,string,flag=0)

从字符串开头开始匹配,返回match对象

re.search(pattern,flag=0)

从头搜索第一个匹配,返回match对象

全文搜索

re.findall(pattern,flag=0)

对整个字符串,从左至右匹配,返回所有匹配项列表

匹配替换

re.sub(pattern,replacement,string,flag=0)

将匹配字符转用replacement代替,返回新字符串

re.subn(pattern,string,count = 0flag=0)

返回一个元组,count显示替换了多少次

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读