美文网首页
正则表达式

正则表达式

作者: livein80 | 来源:发表于2020-07-27 11:39 被阅读0次

1.正则表达式对python对支持:

  • 1.1普通字符

    字母、数字、汉字、下划线、以及没有特殊定义的符号,都是"普通字符"。正则表达式中的普通字符,在匹配的时候,只匹配与自身相同的一个字符。例如:表达式c,在匹配字符串abcde时,匹配结果是:成功;匹配到的内容是c;匹配到的位置开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程语言的不同而可能不同)

    match()函数

    • match(pattern, string, flags=0)

    • 第一个参数是正则表达式,如果匹配成功,则返回一
      个match对象,否则返回一个None

    • 第二个参数表示要匹配的字符串

    • 第三个参数是标致位用于控制正则表达式的匹配方式 如: 是否区分大小写,多行匹配等等

import re
s = 'python and java'
pattern = 'python'
result=re.match(pattern,s)
if result:
    print(result.start())  # 0
    print(result.end())  # 6
    print(result.group()) #python
    print(result.span())  #(0, 6)
else:
    print('未有匹配')
  • 1.2 元字符

表达式 匹配
. 小数点可以匹配除了换行符 \n 以外的任意一个字符
| 逻辑或操作符
[] 匹配字符集中的一个字符
[^] 字符集求反,也就是上面的反操作。尖号必须在方括号的最前面
- 定义[ ]里的一个字符区间,例如[1-9]
\ 转义字符
() 对表达式进行分组,将圆括号内的内容作为一个整体,并获得匹配的值
  • 1.3 转义字符集

表达式 匹配
\r,\n 匹配回车和换行符
\t 匹配制表符
\ 匹配斜杠\
^ 匹配^字符
$ 匹配$字符
. 匹配小数点.字符
  • 1.4 预定义匹配字符集

表达式 匹配
\d 任意一个数字,0-9中的任意一个
\w 任意一个字母或者数字或者下划线,也就是0-9,A-Z,a-z,_中的任意一个
\s 空格,制表符,换页符等空格字符的其中任意一个
\D \d的反集,也就是非数字的任意一个字符,等同于[^\d]
\W \w的反集,等同于[^\w]
\S \s的反集,等同于[^\s]
  • 1.5 重复匹配

表达式 匹配
{n} 表达式重复n次,比如\d(2)相当于\did,at3)相当于aaa
{m,n} 表达式至少重复m次,最多重复n次,比如ab(1,3可以匹配ab或abb或abbb
{m,} 表达式至少重复m次,比如w\d{2,}可以匹配a12,1111,M123等等
? 匹配表达式0次或者1次,相当于{0,1},比如a[cd]?可以匹配a,ac,ad
+ 表达式至少出现1次,相当于{1,},比如a+b可以匹配ab,aab,aaab等
* 表达式出现0次到任意次,相当于{0,},比如^*b可以匹配b,人航.
等等
  • 1.6 位置匹配和非贪婪匹配

表达式 匹配
^ 在字符串开始的地方匹配,符号本身不匹配任何字符
$ 在字符串结束的地方匹配,符号本身不匹配任何字符
\b 匹配一个单词边界,也就是单词和空格之间的位置,符号本身不匹配任何字符
\B 匹配非单词边界,即左右两边都是\w范围或者左右两边都不是\w范围时的字符缝隙

贪婪与非贪婪模式

在重复匹配时,正则表达式默认总是尽可能多的匹配,这被称为贪婪模式。例如,针对文本dxxxdxxxd,表达式(d)(\w+)(d)中的\w+将匹配第一个d和最后一个d之间的所有字符xxxdxxx。可见,\w+在匹配的时候,总是尽可能多的匹配符合它规则的字符。同理,带有?、*和{m,n}的重复匹配表达式都是尽可能地多匹配.

功能 表达式
数字 ^[0-9]*$
n位的数字 ^\d{n}$
至少n位的数字 ^\d{n,}$
零和非零开头的数字 ^(0 | [1-9][0-9]*)$
有两位小数的正实数 ^[0-9]+(\.[0-9]{2})?$
非零的负整数 ^-[1-9]\d*$
非负浮点数 ^\d+(\.\d+)?$
浮点数 ^(-?\d+)(\.\d+)?$

2.re模块常用方法

方法 描述 返回值
compile(pattern,[flags]) 将包含正则表达式转化为对象 re对象(可以直接执行match,search等方法
search(pattern,string,[flags]) 在字符串中查找 返回第一个匹配对象或者none
match(pattern,string,[flags]) 在字符串的开始处匹配模式 返回字符串开头匹配到的对象或者none
split(pattern,string,[maxsplit=0,flags]) 根据模式的匹配项来分割字符串 分割后的字符串列表
findall(pattern,string,[flags]) 列出字符串中模式的所有匹配(不使用group方法取值 所有匹配到的的字符串列表
sub(pat,repl,string,[count=0,flags]) 将字符串中所有的pat的匹配项用repl替换 完成替换后的新的字符串

flag匹配模式

匹配模式 描述
re.I 不区分大小写
re.M 开启多行模式

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/bjktrktx.html