目录

前言

一、正则表达式

1.简介

2.概念

3.目的

4.特点

二、Re库

1.re.match()

?2.fullmatch()

?3.search()

4.?sub()

?5.subn()

6.findall()

?7.finditer()

?8.compile()

9.?splite()

?10.Match对象和Pattern对象

三.正则表达式语法匹配

1 普通字符

1.1alone

?1.2[alone]

1.3[^alone]?

1.4[A-Z]

1.5 .

?1.6[sS]

1.7w

?2.非打印字符

2.1cx

2.2

2.3

2.4

2.5?s

?2.6S

?2.7

2.8

3.特殊字符

3.1$

?3.2( )

?3.3*

?3.4+

?3.5.

?3.6[

3.7?

3.8

3.9^

?3.10{

3.11|

4.限定符

4.1*

4.2+

4.3?

4.4{n}

4.5?{n,}

4.6?{n,m}

5.定位符

5.1^

5.2$

5.3

?5.4B

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

参阅:


很多学Python伙伴问题有没有体系的面试题?
今天为大家推荐一款刷题神奇哦 :刷题面试神器牛客
各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官


前言

正则匹配可以说是数据检索和遍历的基础技能了。在Python我们经常会用到需要提出特定字符的场景,尤其在网络爬虫爬取的编码后杂乱网页提取数据的的时候。在数据库提取数据后或是JSON文件做二次处理都需要re库进行提取。因此学好re库和正则表达是python工程师的必修课,你可以对正则表达式掌握的不是很熟练,但是必须要了解re库中存在的各种函数功能,这将大大加速你完成项目某项需求的时间也方便进行问题搜索。本文将详细介绍Python中正则表达式功能re库的功能。


一、正则表达式

1.简介

正则表达式,又称规则表达式**,**(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开来的,后来在广泛运用于Scala 、PHP、C# 、Java、C++ 、Objective-c、Perl 、Swift、VBScript 、Javascript、Ruby 以及Python等等。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

2.概念

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

3.目的

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  • 判断给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
  • 可以通过正则表达式,从字符串中获取我们想要的特定部分。

4.特点

正则表达式的特点是:

  • 灵活性、逻辑性和功能性非常强;
  • 可以迅速地用极简单的方式达到字符串的复杂控制。
  • 对于刚接触的人来说,比较晦涩难懂。

二、Re库

re库是Python自带的标准库,不需要安装即可使用:

Re库默认采用贪婪匹配,即输出匹配最长的子串

import re

模块常用函数:

1.re.match()

基础语法形式为:

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

函数功能为 :从一个字符串的开始位置起匹配正则表达式,返回match对象。如果开始没有匹配到,不管后边有没有能符合匹配的,都打印不出结果,这是和search的区别。

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • string:匹配的字符串
  • flags:正则表达式使用时的控制标记

其中flags可选参数有:

参数

说明

re.l/re.IGNORECASE

忽略大小写

re.M/re.MULTILINE

多行模式,改变‘^‘和’$'的行为

re.S/re.DOTALL

点’.'的任意匹配模式,改变’.‘的行为

re.L/re.LOCALE

使预定字符类wWBsS取决于当前区域设定

re.U/re.UNICODE

使预定字符类wWBsSdD取决于unicode定义的字符属性

re.X/re.VERBOSE

详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并且可以加入注释

我们把复杂的匹配放到第三章再写,这里我们仅简单展示一下该函数的用法和效果:

strings='Fanstuck wants to leave alone'
print(re.match('Fanstuck',strings))
#out: <re.Match object; span=(0, 8), match='Fanstuck'>

其中span就匹配到的pattern在字符串中的位置。

strings='Fanstuck wants to leave alone'
print(re.match('anstuck',strings))
#out: None

2.fullmatch()

基础语法格式为:

fullmatch(pattern, string, flags=0)

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • string:匹配的字符串
  • flags:正则表达式使用时的控制标记

函数功能为 :尝试将正则表达式pattern应用于所有字符串string,如果匹配成功,返回匹配对象;如果找不到匹配,则为“None”。

用法效果展示:

strings='Fanstuck wants to leave alone'
print(re.fullmatch('Fanstuck wants to leave alone',strings))
#out: <re.Match object; span=(0, 29), match='Fanstuck wants to leave alone'>

该函数为贪婪规则指定的pattern都必须完全和strings长度和字符一一对应,否则就是None:

strings='Fanstuck wants to leave alone'
print(re.fullmatch('Fanstuck wants to leave alon',strings))
#out: None

3.search()

基础语法格式为:

search(pattern, string, flags=0)

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • string:匹配的字符串
  • flags:正则表达式使用时的控制标记

函数功能为 :扫描字符串string以查找与正则表达式pattern的匹配项,返回匹配对象;如果找不到匹配,则为“None”。re.search 匹配整个字符串,直到找到一个匹配。

strings='Fanstuck wants to leave alone'
print(re.search('alone',strings))
#out:<re.Match object; span=(24, 29), match='alone'>strings='Fanstuck wants to leave alone'
print(re.search('die',strings))
#out:None

4.sub()

基本语法格式为:

sub(pattern, repl, string, count=0, flags=0)

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示

  • repl:将匹配到的pattern替换为repl

  • string:匹配的字符串

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

  • flags:正则表达式使用时的控制标记

    strings=‘Fanstuck wants to leave alone alonely’
    print(re.sub(‘leave’,‘die’,strings))
    #out:Fanstuck wants to die alone alonely

    strings=‘Fanstuck wants to leave alone alonely’
    print(re.sub(‘alone’,‘sad’,strings))
    #out:Fanstuck wants to leave sad sadly

5.subn()

基础语法格式为:

subn(pattern, repl, string, count=0, flags=0)

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • repl:将匹配到的pattern替换为repl
  • string:匹配的字符串
  • count:模式匹配后替换的最大次数,默认 0 表示替换所有的匹配
  • flags:正则表达式使用时的控制标记

与前一个函数sub相比,无非就是增加了一个次数:

strings='Fanstuck wants to leave alone alonely'
print(re.subn('alone','sad',strings))
#out:('Fanstuck wants to leave sad sadly', 2)

但是转化为字典dict或者是用于pandas都是比较方便的,不用在统计出匹配了多少个字段。

6.findall()

基础语法格式为:

findall(pattern, string, flags=0)
或
findall(pattern,string, pos, endpos)

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • string:匹配的字符串
  • flags:正则表达式使用时的控制标记
  • pos:可选参数,指定字符串的起始位置,默认为 0。
  • endpos:可选参数,指定字符串的结束位置,默认为字符串的长度

函数功能为 :在字符串string中匹配所有符合正则表达式pattern的对象,并把这些对象通过列表list的形式返回。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('alone',strings))
#out:['alone', 'alone']strings='Fanstuck wants to leave alone alonely'
print(re.findall('alonely',strings))
#out:['alonely']strings='Fanstuck wants to leave alone alonely'
pattern=re.compile('a')
print(pattern.findall(strings,0,30))

7.finditer()

基础语法格式为:

finditer(pattern, string, flags=0)

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • string:匹配的字符串
  • flags:正则表达式使用时的控制标记

函数功能为:在字符串string中匹配所有符合正则表达式pattern的对象,并把这些对象通过迭代器的形式返回。

strings='Fanstuck wants to leave alone alonely'
result=re.finditer('alone',strings)
for i in result:print(i)
#out:<re.Match object; span=(24, 29), match='alone'>
#out:<re.Match object; span=(30, 35), match='alone'>

8.compile()

基础语法格式为:

compile(pattern, flags=0)
  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • flags:正则表达式使用时的控制标记

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

strings='Fanstuck wants to leave alone alonely'
pattern=re.compile('to')
pattern.search(strings)
#out:<re.Match object; span=(15, 17), match='to'>strings='Fanstuck wants to leave alone alonely'
pattern=re.compile('to')
object_search=pattern.search(strings)
object_search.group()
#out:'to'
object_search.start()
#out:15
object_search.end()
#out:17
object_search.span()
#out:(15,17)

9.splite()

基础语法格式为:

re.splite(pattern, string, maxsplit=0, flags=0)

参数说明:

  • pattern:匹配目标对象的正则表达式pattern或原生字符串表示
  • string:匹配的字符串
  • maxsplit:分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数
  • flags:正则表达式使用时的控制标记

pattern匹配的子串来分割string,如果pattern里使用了圆括号,那么被pattern匹配到的串也将作为返回值列表的一部分,maxsplit为最多被分割的字符串个数。

strings='Fanstuck wants to leave alone alonely'
re.split(r' ', strings)
#out:['Fanstuck', 'wants', 'to', 'leave', 'alone', 'alonely']strings='Fanstuck wants to leave alone alonely'
re.split(r' ', strings,maxsplit=2)
#out:['Fanstuck', 'wants', 'to leave alone alonely']strings='Fanstuck wants to leave alone alonely'
re.split(r'( )', strings,maxsplit=2)
#out:['Fanstuck', ' ', 'wants', ' ', 'to leave alone alonely']

10.Match对象和Pattern对象

re.match()、re.search()成功匹配的话都会返回一个Match对象,它包含了关于此次匹配的信息,可以使用Match提供的属性或方法来获取这些信息;Pattern对象对象由re.compile()生成,而且方法用处也是一样的。

strings='Fanstuck wants to leave alone alonely'
pattern=re.compile('to')
object_search=pattern.search(strings)
object_search.string
#out:'Fanstuck wants to leave alone alonely'
object_search.re
#out:re.compile(r'to', re.UNICODE)
object_search.pos
#out:0 (开始匹配的位置)
object_search.endpos
#out:37(结束匹配的位置)
object_search.lastindex
#out:None
object_search.lastgroup
#out:None
object_search.groupdict()
#out:{}
object_search.group()
#out:'to'
object_search.start()
#out:15
object_search.end()
#out:17
object_search.span()
#out:(15,17)

三.正则表达式语法匹配

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

待会我们会用到re库中的函数还进行字符匹配,这里可以通过一个例子先看一下语法:

import re
a = "abbbbbccccd"
b = re.findall('ab+c+d',a)
print(b)

[‘abbbbbccccd’]

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

1 普通字符

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

1.1alone

普通字符串,上述例子基本用的都是普通字符串。这里我们用findall()函数来演示更好:

strings='Fanstuck wants to leave alone alonely'
print(re.findall('alone',strings))

[‘alone’, ‘alone’]

1.2[alone]

匹配[…]中的所有字符:

strings='Fanstuck wants to leave alone alonely'
print(re.findall('[alone]',strings))

[‘a’, ‘n’, ‘a’, ‘n’, ‘o’, ‘l’, ‘e’, ‘a’, ‘e’, ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘l’]

1.3[^alone]

匹配除了[^…]中字符的所有字符

strings='Fanstuck wants to leave alone alonely'
print(re.findall('[^alone]',strings))

[‘F’, ‘u’, ‘c’, ‘k’, ’ ', ’ ', ‘o’, ’ ', ‘l’, ‘e’, ‘v’, ‘e’, ’ ', ‘l’, ‘o’, ‘e’, ’ ', ‘l’, ‘o’, ‘e’, ‘l’, ‘y’]

1.4[A-Z]

[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('[^A-F]',strings))

[‘a’, ‘n’, ‘s’, ‘t’, ‘u’, ‘c’, ‘k’, ’ ', ‘w’, ‘a’, ‘n’, ‘t’, ‘s’, ’ ', ‘t’, ‘o’, ’ ', ‘l’, ‘e’, ‘a’, ‘v’, ‘e’, ’ ', ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ’ ', ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘l’, ‘y’]

1.5 .

匹配除换行符( 、 )之外的任何单个字符,相等于 [^ ]。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('.',strings))

[‘F’, ‘a’, ‘n’, ‘s’, ‘t’, ‘u’, ‘c’, ‘k’, ’ ', ‘w’, ‘a’, ‘n’, ‘t’, ‘s’, ’ ', ‘t’, ‘o’, ’ ', ‘l’, ‘e’, ‘a’, ‘v’, ‘e’, ’ ', ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ’ ', ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘l’, ‘y’]

1.6[sS]

匹配所有。s 是匹配所有空白符,包括换行,S 非空白符,不包括换行。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('[sS]',strings))

[‘F’, ‘a’, ‘n’, ‘s’, ‘t’, ‘u’, ‘c’, ‘k’, ’ ', ‘w’, ‘a’, ‘n’, ‘t’, ‘s’, ’ ', ‘t’, ‘o’, ’ ', ‘l’, ‘e’, ‘a’, ‘v’, ‘e’, ’ ', ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ’ ', ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘l’, ‘y’]

1.7w

匹配字母、数字、下划线。等价于 [A-Za-z0-9_]

strings='Fanstuck wants to leave alone alonely'
print(re.findall('w',strings))

[‘F’, ‘a’, ‘n’, ‘s’, ‘t’, ‘u’, ‘c’, ‘k’, ‘w’, ‘a’, ‘n’, ‘t’, ‘s’, ‘t’, ‘o’, ‘l’, ‘e’, ‘a’, ‘v’, ‘e’, ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘l’, ‘y’]

2.非打印字符

非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:

2.1cx

匹配由x指明的控制字符。例如, cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。

2.2

匹配一个换页符。等价于 和 cL。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('',strings))

2.3

匹配一个换行符。等价于 和 cJ。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('
',strings))
print(strings)

[’
']
Fanstuck
wants to leave alone alonely

2.4

匹配一个回车符。等价于 和 cM。

strings='Fanstuck wants to leavealone alonely'
print(re.findall('
',strings))
print(strings)

[’
', ’
', ’
']
alone alonelye

2.5s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ ]。注意 Unicode 正则表达式会匹配全角空格符。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('s',strings))

[’ ', ’ ', ’ ', ’ ', ’ ']

2.6S

匹配任何非空白字符。等价于 [^ ]。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('S',strings))

[‘F’, ‘a’, ‘n’, ‘s’, ‘t’, ‘u’, ‘c’, ‘k’, ‘w’, ‘a’, ‘n’, ‘t’, ‘s’, ‘t’, ‘o’, ‘l’, ‘e’, ‘a’, ‘v’, ‘e’, ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘a’, ‘l’, ‘o’, ‘n’, ‘e’, ‘l’, ‘y’]

2.7

匹配一个制表符。等价于 和 cI。

strings='Fanstuck wants to leave alone alonely'
print(re.findall(' ',strings))

没写啥制表符固为空。

2.8

匹配一个垂直制表符。等价于 和 cK。

3.特殊字符

所谓特殊字符,就是一些有特殊含义的字符,如上面说的runoo*b中的*,简单的说就是表示任何字符串的意思。如果要查找字符串中的*符号,则需要对*进行转义,即在其前加一个,runo*ob匹配字符串runo*ob

许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符放在它们前面。下表列出了正则表达式中的特殊字符:

3.1$

匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 或 之前的位置匹配。则 $ 也匹配 ’ ’ 或 ’ '。要匹配 $ 字符本身,请使用 $。

strings='Fanstuck wants to leave alone alonely'
print(re.findall(' alone alonely$',strings))

[’ alone alonely’]

3.2( )

标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('(Fanw{2,3}ck)',strings))

[‘Fanstuck’]

3.3*

匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('(Fanw*ck)',strings))

[‘Fanstuck’]

3.4+

匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('(alone)+',strings))

[‘alone’, ‘alone’]

3.5.

匹配除换行符 之外的任何单字符。要匹配 . ,请使用 . 。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('Fa.s.u.k',strings))

[‘Fanstuck’]

3.6[

标记一个中括号表达式的开始。要匹配 [,请使用 [。

3.7

匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 字符,请使用 。

这里要注意一下贪婪模式和非贪婪模式。

贪婪模式:尽可能多的去匹配数据,表现为w后面加某个元字符,例如w*:

strings='Fanstuck wants to leave alone alonely'
print(re.findall('Fw*',strings))

[‘Fanstuck’]

非贪婪模式:尽可能少的去匹配数据,表现为w后面加?,例如w

strings='Fanstuck wants to leave alone alonely'
print(re.findall('Fw?',strings))

[‘Fa’]

3.8

将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’ ’ 匹配换行符。序列 ‘\’ 匹配 “”,而 ‘(’ 则匹配 “(”。

3.9^

strings='alone alonely'
print(re.findall('^alone',strings))

[‘alone’]

3.10{

标记限定符表达式的开始。要匹配 {,请使用 {。

3.11|

指明两项之间的一个选择。要匹配 |,请使用 |。

4.限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或或{n}或{n,}或{n,m}共6种。

正则表达式的限定符有:

4.1*

上述已作展示

4.2+

上述已作展示

4.3?

上述已作展示

4.4{n}

n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('Fanw{2}uck',strings))

4.5{n,}

n 是一个非负整数。至少匹配n 次。贪婪

strings='Fanstuck wants to leave alone alonely'
print(re.findall('Fanw{1,}uck',strings))

[‘Fanstuck’]

4.6{n,m}

m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。贪婪

strings='Fanstuck wants to leave alone alonely'
print(re.findall('^(w{2,8}s*w{2,8})+',strings))a

[‘Fanstuck wants’]

strings='Fanstuck wants to leave alone alonely'
print(re.findall('^Fanstuck[(w{2,8}s*)+]+ly',strings))

[‘Fanstuck wants to leave alone alonely’]

*和+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 就可以实现非贪婪或最小匹配。

5.定位符

5.1^

上述已经演示

5.2$

上述已经演示

5.3

匹配一个单词边界,即字与空格间的位置。

strings='Fanstuck wants to leave alone alonely'
print(re.findall(r'alone',strings))

[‘alone’]

5.4B

和’/b’相反,它只匹配非边界的字符。

strings='Fanstuck wants to leave alone alonely'
print(re.findall('alone\Bly',strings))

[‘alonely’]

很多学Python伙伴问题有没有体系的面试题?
今天为大家推荐一款刷题神奇哦 :刷题面试神器牛客
各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官


点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是 ,有问题大家随时留言讨论 ,我们下期见。

参阅:

Python标准库笔记(2) — re模块

python正则表达式:re库的使用

python库详解

re库

python | 史上最全的正则表达式

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

Python正则表达式一文详解+实例代码展示相关推荐

  1. Pandas获取SQL数据库read_sql()函数及参数一文详解+实例代码

    前言 Pandas常用作数据分析工具库以及利用其自带的DataFrame数据类型做一些灵活的数据转换.计算.运算等复杂操作,但都是建立在我们获取数据源的数据之后.因此作为读取数据源信息的接口函数必然拥 ...

  2. python 自动化-Python API 自动化实战详解(纯代码)

    主要讲如何在公司利用Python 搞API自动化. 1.分层设计思路 dataPool :数据池层,里面有我们需要的各种数据,包括一些公共数据等 config :基础配置 tools : 工具层 co ...

  3. Python正则表达式所有函数详解

    文章目录 1 fullmatch 2 match 3 search 4 findall 5 finditer 6 split 7 sub 8 compile 本篇博客主要讲解正则表达式相关的函数,均不 ...

  4. Pandas中read_excel函数参数使用详解+实例代码

    目录 前言 一.数据展示 1.io 2.sheet_name 3.header 4.names 5.index_col 6.usecols 7.squeeze 8.dtype 9.engine 10. ...

  5. HiveSQL分位数函数percentile()使用详解+实例代码

    目录 前言 一.percentile() 二.percentile_approx() 点关注,防走丢,如有纰漏之处,请留言指教,非常感谢 前言 作为数据分析师每个SQL数据库的函数以及使用技能操作都得 ...

  6. Jython-在JAVA调用Python脚本使用方法详解+示例代码

    目录 前言 一.Jython简介 1.场景 2.下载 二.运用示例 构建Maven项目 构建java,运行python语句: 运行python脚本: 运行带有第三方库的Python脚本 转为jar包 ...

  7. 一文速学(二十一)-数据分析之Pandas快速图表可视化各类操作详解+实例代码(三)

    目录 前言 一.六边形箱图 二.饼图 三.缺失数据绘制处理

  8. python——正则表达式(re模块)详解

    在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re. 正则表达式的大致匹配过程是: 1.依次拿出表达式和文本中的字符比较, 2.如果每一个字符都能 ...

  9. Python正则表达式之元字符详解(1)

    文章目录 简介 注意: 字符匹配 元字符 [ ] 注意: 反斜杠\ . * + ? {} 简介 正则表达式(Regular expressions 也称为 REs,或 regexes 或 regex ...

最新文章

  1. 无法创建Web Application项目的问题
  2. el表达式 if 和 if else 的写法
  3. java进程和线程_Java™ 教程(进程和线程)
  4. 文末送书|增强现实:原理与实践
  5. 分配任务的代码PHP,php计划任务的示例代码分享
  6. java多线程总结二(转)
  7. sqlserver express版PRIMARY 大小不能超过4G
  8. 呼吸流水灯c语言程序,单片机流水灯与呼吸灯结合-滴水灯程序及详细教程
  9. dep指定版本 go_将 dep 更换为 go mod
  10. Freemarker数字格式化总结
  11. update语句执行卡死现象原因及解决方案
  12. 招聘面试的STAR原则
  13. 为什么一些linux基础静态库(如libc.a)里面包含那么多目标文件.o呢? 为什么不将这些.o文件进行提前糅合呢?
  14. android通讯录项目分析,Android 通讯录展示
  15. 电子邮件头Received分析
  16. 生日祝福html_说祝福 | 祝4月的你生日快乐
  17. java jurisdiction_Java Region.setJurisdiction方法代码示例
  18. 谈谈百度贴吧、豆瓣小组以及BBS这个产品形态
  19. Sanic学习——初识Sanic
  20. 【2】python算法练习--动态规划专题(1)

热门文章

  1. 手把手写C++服务器(0):专栏文章-汇总导航【持续更新】
  2. win8虚拟机_VMware 15虚拟机VM软件安装教程
  3. ffmpeg probe一个文件的过程
  4. Word 标题前添加一颜色竖线条
  5. response.setHeader()的用法详解及实现文件下载过程中出现问题的分析
  6. 可道云kodexplorer修改小记
  7. 移动应用的黑盒测试(1)
  8. 伦敦大学国王学院金融数学理学硕士研究生offer一枚
  9. 详解win10开机启动慢是什么原因怎么解决
  10. Android 蓝牙监听与扫描