【Python】高级教程:)正则表达式

Python高级(三)_正则表达式 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。 阅读详情

声明


(1)该文章整理自网上无私奉献的资料,具体引用的资料请看参考文献。
(2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。
(3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。
(4)若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为自己学习上的推进添砖加瓦。

Python 正则表达式

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

本章节主要介绍Python中常用的正则表达式处理函数。


re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法:

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

函数参数说明:

参数描述
pattern匹配的正则表达式
string要匹配的字符串。
flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志

匹配成功re.match方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法描述
group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

实例

#!/usr/bin/python # -*- coding: UTF-8 -*- import re print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配 print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
None

实例

#!/usr/bin/python import re line = "Cats are smarter than dogs" matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) print "matchObj.group(2) : ", matchObj.group(2) else: print "No match!!"

以上实例执行结果如下:

matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter

re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

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

函数参数说明:

参数描述
pattern匹配的正则表达式
string要匹配的字符串。
flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功re.search方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法描述
group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

实例

#!/usr/bin/python # -*- coding: UTF-8 -*- import re print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配 print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
(11, 14)

实例

#!/usr/bin/python import re line = "Cats are smarter than dogs"; searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I) if searchObj: print "searchObj.group() : ", searchObj.group() print "searchObj.group(1) : ", searchObj.group(1) print "searchObj.group(2) : ", searchObj.group(2) else: print "Nothing found!!"

以上实例执行结果如下:

searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter

re.match与re.search的区别

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

实例

#!/usr/bin/python import re line = "Cats are smarter than dogs"; matchObj = re.match( r'dogs', line, re.M|re.I) if matchObj: print "match --> matchObj.group() : ", matchObj.group() else: print "No match!!" matchObj = re.search( r'dogs', line, re.M|re.I) if matchObj: print "search --> matchObj.group() : ", matchObj.group() else: print "No match!!"

以上实例运行结果如下:

No match!!
search --> matchObj.group() :  dogs

检索和替换

Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

语法:

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

参数:

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

实例

#!/usr/bin/python # -*- coding: UTF-8 -*- import re phone = "2004-959-559 # 这是一个国外电话号码" # 删除字符串中的 Python注释 num = re.sub(r'#.*$', "", phone) print "电话号码是: ", num # 删除非数字(-)的字符串 num = re.sub(r'\D', "", phone) print "电话号码是 : ", num

以上实例执行结果如下:

电话号码是:  2004-959-559 
电话号码是 :  2004959559

repl 参数是一个函数

以下实例中将字符串中的匹配的数字乘以 2:

实例

#!/usr/bin/python # -*- coding: UTF-8 -*- import re # 将匹配的数字乘以 2 def double(matched): value = int(matched.group('value')) return str(value * 2) s = 'A23G4HFD567' print(re.sub('(?P<value>\d+)', double, s))

执行输出结果为:

A46G8HFD1134

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 为了增加可读性,忽略空格和 # 后面的注释

实例

>>>import re >>> pattern = re.compile(r'\d+') # 用于匹配至少一个数字 >>> m = pattern.match('one12twothree34four') # 查找头部,没有匹配 >>> print m None >>> m = pattern.match('one12twothree34four', 2, 10) # 从'e'的位置开始匹配,没有匹配 >>> print m None >>> m = pattern.match('one12twothree34four', 3, 10) # 从'1'的位置开始匹配,正好匹配 >>> print m # 返回一个 Match 对象 <_sre.SRE_Match object at 0x10a42aac0> >>> m.group(0) # 可省略 0 '12' >>> m.start(0) # 可省略 0 3 >>> m.end(0) # 可省略 0 5 >>> m.span(0) # 可省略 0 (3, 5)

在上面,当匹配成功时返回一个 Match 对象,其中:

group([group1, …]) 方法用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用 group() 或 group(0);

start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引),参数默认值为 0;

end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1),参数默认值为 0;

span([group]) 方法返回 (start(group), end(group))。

再看看一个例子:

实例

>>>import re >>> pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I) # re.I 表示忽略大小写 >>> m = pattern.match('Hello World Wide Web') >>> print m # 匹配成功,返回一个 Match 对象 <_sre.SRE_Match object at 0x10bea83e8> >>> m.group(0) # 返回匹配成功的整个子串 'Hello World' >>> m.span(0) # 返回匹配成功的整个子串的索引 (0, 11) >>> m.group(1) # 返回第一个分组匹配成功的子串 'Hello' >>> m.span(1) # 返回第一个分组匹配成功的子串的索引 (0, 5) >>> m.group(2) # 返回第二个分组匹配成功的子串 'World' >>> m.span(2) # 返回第二个分组匹配成功的子串 (6, 11) >>> m.groups() # 等价于 (m.group(1), m.group(2), ...) ('Hello', 'World') >>> m.group(3) # 不存在第三个分组 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: no such group

findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有。

语法格式为:

findall(string[, pos[, endpos]])

参数:

string : 待匹配的字符串。

pos : 可选参数,指定字符串的起始位置,默认为 0。

endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。

查找字符串中的所有数字:

实例

# -*- coding:UTF8 -*- import re pattern = re.compile(r'\d+') # 查找数字 result1 = pattern.findall('runoob 123 google 456') result2 = pattern.findall('run88oob123google456', 0, 10) print(result1) print(result2)

输出结果:

['123', '456']
['88', '12']

re.finditer

和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

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

参数:

参数描述
pattern匹配的正则表达式
string要匹配的字符串。
flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志

实例

# -*- coding: UTF-8 -*- import re it = re.finditer(r"\d+","12a32bc43jf3") for match in it: print (match.group() )

输出结果:

12 
32 
43 
3

re.split

split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:

re.split(pattern, string[, maxsplit=0, flags=0])

参数:

参数描述
pattern匹配的正则表达式
string要匹配的字符串。
maxsplit分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数。
flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志

实例

>>>import re >>> re.split('\W+', 'runoob, runoob, runoob.') ['runoob', 'runoob', 'runoob', ''] >>> re.split('(\W+)', ' runoob, runoob, runoob.') ['', ' ', 'runoob', ', ', 'runoob', ', ', 'runoob', '.', ''] >>> re.split('\W+', ' runoob, runoob, runoob.', 1) ['', 'runoob, runoob, runoob.'] >>> re.split('a*', 'hello world') # 对于一个找不到匹配的字符串而言,split 不会对其作出分割 ['hello world']


正则表达式对象

re.RegexObject

re.compile() 返回 RegexObject 对象。

re.MatchObject

group() 返回被 RE 匹配的字符串。

start() 返回匹配开始的位置

end() 返回匹配结束的位置

span() 返回一个元组包含匹配 (开始,结束) 的位置


正则表达式修饰符 - 可选标志

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:

修饰符描述
re.I使匹配对大小写不敏感
re.L做本地化识别(locale-aware)匹配
re.M多行匹配,影响 ^ 和 $
re.S使 . 匹配包括换行在内的所有字符
re.U根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

正则表达式模式

模式字符串使用特殊的语法来表示一个正则表达式:

字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。

多数字母和数字前加一个反斜杠时会拥有不同的含义。

标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。

反斜杠本身需要使用反斜杠转义。

由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'\t',等价于 '\\t')匹配相应的特殊字符。

下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。

模式描述
^匹配字符串的开头
$匹配字符串的末尾。
.匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[...]用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'
[^...]不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
re*匹配0个或多个的表达式。
re+匹配1个或多个的表达式。
re?匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
re{ n}精确匹配 n 个前面表达式。例如, o{2} 不能匹配 "Bob" 中的 "o",但是能匹配 "food" 中的两个 o。
re{ n,}匹配 n 个前面表达式。例如, o{2,} 不能匹配"Bob"中的"o",但能匹配 "foooood"中的所有 o。"o{1,}" 等价于 "o+"。"o{0,}" 则等价于 "o*"。
re{ n, m}匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
a| b匹配a或b
(re)对正则表达式分组并记住匹配的文本
(?imx)正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。
(?-imx)正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。
(?: re)类似 (...), 但是不表示一个组
(?imx: re)在括号中使用i, m, 或 x 可选标志
(?-imx: re)在括号中不使用i, m, 或 x 可选标志
(?#...)注释.
(?= re)前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。
(?! re)前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功
(?> re)匹配的独立模式,省去回溯。
\w匹配字母数字及下划线
\W匹配非字母数字及下划线
\s匹配任意空白字符,等价于 [\t\n\r\f].
\S匹配任意非空字符
\d匹配任意数字,等价于 [0-9].
\D匹配任意非数字
\A匹配字符串开始
\Z匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
\z匹配字符串结束
\G匹配最后匹配完成的位置。
\b匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\n, \t, 等.匹配一个换行符。匹配一个制表符。等
\1...\9匹配第n个分组的内容。
\10匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。

正则表达式实例

字符匹配

实例描述
python匹配 "python".

字符类

实例描述
[Pp]ython匹配 "Python" 或 "python"
rub[ye]匹配 "ruby" 或 "rube"
[aeiou]匹配中括号内的任意一个字母
[0-9]匹配任何数字。类似于 [0123456789]
[a-z]匹配任何小写字母
[A-Z]匹配任何大写字母
[a-zA-Z0-9]匹配任何字母及数字
[^aeiou]除了aeiou字母以外的所有字符
[^0-9]匹配除了数字外的字符

特殊字符类

实例描述
.匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
\d匹配一个数字字符。等价于 [0-9]。
\D匹配一个非数字字符。等价于 [^0-9]。
\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\w匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
Python高级正则表达式 介绍 在我们教程的正则表达式介绍中,我们已经介绍了正则表达式的基本原理。我们已经展示了最简单的正则表达式的样子。我们还学习了如何通过使用 re 模块的 search() 和 match() 方法在 Python 中使用正则表达式。制定和使用字符类的概念,以及预定义的字符类,如 \d、\D、\s、\S 等,现在应该是众所周知的。您一定已经学会了如何使用正则表达式匹配字符串的开头和结尾。您必须知道问号的特殊含义才能使项目可选。我们还引入了量词来任意或在特定范围内重复字符和组。 您还必须熟悉分组的使用以及 阅读详情

相关推荐

Python高级教程(一)

类:用来描述相同的属性和方法的对象的集合。对象是类的实例方法:类中定义的函数类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体外。数据成员:类变量或者实例变量用于处理类及实例对象的相关数据方法重写:如果父类继承的方法不能满足子类的需求可以进行改写,这个过程叫方法的覆盖,也称为方法的重写局部变量:定义在方法中的变量实例变量:在类中声明,属性是用变量来表示的,这种变量称为实例变量。实例变量就是用一个self修饰的变量。...

qq_70434663的博客 1652

Python 正则表达式

为什么80%的码农都做不了架构师?>>> ...

weixin_34010949的博客 262

【Python3教程】Python3高级篇之正则表达式

Python正则表达式简明指南 正则表达式是Python处理文本的强大工具,通过re模块实现。本文介绍了正则表达式的基本概念、常用函数和语法规则。 主要功能: 匹配(match/search) 查找(findall/finditer) 替换(sub) 分割(split) 核心元字符包括: 基本符号:. ^ $ * + ? {} 字符集:[ ] [^ ] 特殊字符:\d \w \s及其大写反义形式 分组与或:( ) | 常用re模块函数: match():开头匹配 search():全局搜索 findall(

No8g攻城狮的博客 582

Python3 正则表达式特殊符号及用法(详细列表)

字符 含义 . 表示匹配除了换行符外的任何字符;注:通过设置 re.DOTALL 标志可以使 . 匹配任何字符(包含换行符) | A | B,表示匹配正则表达式 A 或者 B ^ 1. (脱字符)匹配输入字符串的开始位置;2. 如果设置了 re.MULTILINE 标志,^ 也匹配换行符之后的位置 $ 1. 匹配输入字符串的结束位置,2. 如果设置了 re.MULTILINE 标志,$ 也匹配换行符之前的位置 \ 1. 将一个普通字符变成特殊字符,例如 \d 表示匹配所有十进...

寻梦&之璐 2651

Python 正则表达式(re)

正则表达式是一种强大的字符串匹配工具,通过定义搜索模式,可以在文本中搜索、替换符合条件的字符串。在 Python 中,正则表达式模块由 re 提供支持。本文将详细介绍正则表达式的语法、常用函数和高级用法。

xmp65535的博客 2930

UM982模组在无人机精准农业中的实战应用:如何配置双天线RTK实现厘米级定位

本文深入解析了UM982双天线RTK模组在农业无人机中的实战应用。通过详细阐述其硬件集成、软件配置及抗干扰调试全流程,重点说明了如何利用双天线设计直接获取高精度航向,并结合BDS等多系统GNSS信号,实现农田复杂环境下的厘米级稳定定位,从而提升变量施肥、自动巡田等精准农业作业的效率与质量。

weixin_29304021的博客 504

python re模块学习--常用的正则符号

常用的正则符号: 英文状态的句号点 . 英文状态下的中括号 [] 英文状态下的圆括号 () 英文状态的大括号 {} 英文状态下的问号 ? 加号 + 星号 * 反斜杠 \ 1、英文状态的句号点 . :指代除了换行符\n以外的任意字符。 import re s = 'Life was like a box of chocolates, you never know what you are gonna get' f1 = re.findall('chocol.....', s) f2 =

m0_60392490的博客 1132

LibTV本地部署:AI漫剧创作完整解决方案与实战指南

如果你正在关注AI漫剧创作这个赛道,可能会发现一个有趣的现象:市面上的AI视频工具要么功能单一,要么云端服务昂贵且存在内容审核风险。而今天要介绍的LibTV本地部署方案,或许能为你打开一扇新的大门。 这个方案的核心是Seedance2.0与豆包AI的本地化集成,它真正解决的是创作者对内容自主权、成本控制和创作效率的三重需求。与红果、抖音等平台提供的标准化AI工具相比,本地部署意味着你可以完全掌控生成过程,不受平台规则限制,更重要的是——所有数据都在本地,不存在内容泄露风险。 1. 这篇文章真正要解决的问题

weixin_28745309的博客 520

【办公-WORD】特殊字符替换- l-下箭头 ↓ p-换行等等

【办公-WORD】特殊字符替换- l-下箭头 ↓ p-换行等等

qq_43746676的博客 1248

基于STM32的超声波流量计设计

本项目基于STM32微控制器设计了一种超声波流量计,采用时间差法测量液体或气体的流速,计算流量并通过显示屏实时显示,同时支持远程数据传输。本设计通过STM32微控制器实现了基于时间差法的超声波流量计,集成了超声波信号采集、流量计算、状态显示和远程通信功能。本系统需要实现超声波信号的实时采集与处理,计算流速和流量,并将数据通过OLED显示和无线模块上传。系统需具备高精度的时间测量能力和良好的抗干扰能力。通过计算超声波在顺流和逆流方向上的传播时间差,结合管道直径与流体特性,计算流速并进一步计算流量。

stm32d1219的博客 2347

AD22等长布线规则

本文介绍了PCB布线中实现信号线等长的详细操作步骤:1.创建网络类(NetClass),将需要等长的信号线归入同一组;2.设置高速布线规则(High-SpeedRule),定义等长容差等参数;3.进行交互式等长布线(InteractiveLengthTuning),使用蛇形线调整线长;4.实时调整与最终检查,确保所有网络满足等长要求。文中还提供了实用技巧,如使用快捷键调整蛇形线参数、为关键信号设置更严格规则等。操作需在PCB设计软件中完成,通过统一管理、规则设置和精确调整来实现信号同步传输。

whm128的博客 1557

正则表达式re.compile()的使用

re 模块提供了不少有用的函数,用以匹配字符串,比如: compile 函数match 函数search 函数findall 函数finditer 函数split 函数sub 函数subn 函数 re 模块的一般使用步骤如下: 使用 compile 函数将正则表达式的字符串形式编译为一个 Pattern 对象通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果(一个 Match 对象)最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作 compile 函数

weixin_43887873的博客 1236

生成式AI;语义通信技术;生成式AI辅助的云边协同算法及其可解释性

生成式AI 语义通信技术 生成式AI辅助的云边协同算法及其可解释性 一、端到端设计的物理层内生智能 二、生成式语义通信 三、生成式数字孪生网络 四、生成式AI辅助的云边协同算法及其可解释性 五、未来可能的研究方向

ZhangJiqun&191cm&85kg 425

Python高级系列教程:Python高级语法与正则表达式

1、为什么要学习正则表达式在实际开发过程中经常会有查找符合某些复杂规则的字符串的需要 比如:邮箱、图片地址、手机号码等 这时候想匹配或者查找符合某些规则的字符串就可以使用正则表达式了在实际应用的过程中,它可以在文本处理、数据分析、网络爬虫、数据清洗等领域发挥重要作用。以下是学习正则表达式的几个原因:文本处理:在文本处理中,我们需要对文本进行搜索、替换、分割等操作,而正则表达式可以帮助我们快速、准确地完成这些任务。

Blue92120的博客 1498

GNSS/RTK定位失效时的替代方案:视觉惯性里程计(VIO)

GNSS/RTK定位失效时的替代方案:视觉惯性里程计(VIO)​ ,人工智能,计算机视觉,大模型,AI,本文详细介绍了视觉惯性里程计(VIO)作为GNSS/RTK定位失效时的替代方案。阐述了VIO的定义、优势及与其他定位技术的区别,讲解了视觉传感器和IMU的工作原理及数据融合原理,分析了时间同步、标定等关键技术,介绍了VINS-Mono等常用框架、简单代码示例、应用场景,还探讨了VIO面临的挑战与未来发展趋势,展现了其在多个领域的重要性与应用潜力。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

如何使用 SAP ABAP Development Tool 连接 SAP BTP 上的免费 ABAP 编程环境

在云端环境编写 ABAP 代码会遇到一些限制,比如你无法在云端 ABAP 编程环境进行发生在传统 SAPGUI 里的 Dynpro 和 Screen 编程。部分在 SAPGUI 里使用的 List 处理相关的关键字比如 WRITE,还有 CALL TRANSACTION 等代码,也无法在云端使用。 当然如果大家觉得上面提到的这些限制不会影响自己的 ABAP 学习,就可以继续本文的阅读,使用 ABAP Development Tool 登录云端的 ABAP 编程环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1514

Python基础教程:正则表达式re高级用法与案例

search 需求:匹配出文章阅读的次数 import re ret = re.search(r"\d+", "阅读次数为 9999") ret.group() 运行结果: '9999' findall 需求:统计出python、c、c++相应文章阅读的次数 ''' 学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import re ret = re.findall(r"\d+

Python热爱者的博客 486

Lammps实现随机粗糙度表面沸腾

Lammps实现随机粗糙度表面沸腾前言 前言

Rockyoung 2703

Python正则表达式入门

Python3 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本文主要阐述re包中的主要函数。 在阐述re包中的函数之前,我们首先看议案正则表达式的模式,即使用特殊的语法来表示一个正则表达式。 1.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 函数用法:re.match(pattern, string, flags=0) pattern: 所要匹配的正则表达式 stri

qq_41081716的博客 605

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python 教学 | “小白”友好型正则表达式教学(三)

本期文章我们将学习 Python 正则表达式其他正则函数的使用方法,并介绍这些方法的应用场景。除此之外,我们还将介绍 Python 正则表达式中的一些高级用法。

weixin_55633225的博客 370

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python初级、中级、高级教程(附视频教程)

Python初级、中级、高级教程(附视频教程)

闲余知道 2341

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python学习——高级教程

Python学习 高级教程 目录 一、Python面向对象 1、面向对象技术简介   类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。   类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。   数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。   ...

墨心 939

Python正则表达式:从基础到高级应用的全面总结与实战

正则表达式是一种强大的文本匹配和处理工具,广泛应用于文本处理、数据抽取、表单验证等领域。本文将从正则表达式的基础知识出发,逐步深入,最终结合代码实战,带你全面了解正则表达式的奥妙。

一键难忘的博客 4236

python3正则表达式的几个高级用法

python3正则表达式的几个高级用法 一、 概述 本文举例说明python3正则表达式的一些高级级法,主要是各类分组,可应用于 1、复杂网页文件中的有用数据 例如,采用爬虫技术取得网页后,对网页内任何数据进行提取分析 2、 各类配置文件 可能是属性文件,读取属性文件中的键值对 ...

软通大学企业博客 2万+

【Python高级374】正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。模式:一种特定的字符串模式,这个模式是通过一些特殊的符号组成的。某种:也可以理解为是一种模糊匹配。精准匹配:select * from blog where title=‘python’;模糊匹配:select * from blog where title like ‘%python%’;

czc的博客的csdn版本,欢迎访问我的还在建设的个人网站:czchx.cc 1524

Python正则表达式高级应用

正则表达式(Regular Expression)是一种强大的文本处理工具,它使用特定的模式来匹配和处理字符串。在Python中,正则表达式通过re模块提供支持,广泛应用于文本搜索、数据提取、格式验证等场景。掌握正则表达式的高级应用对于处理复杂的文本数据至关重要。本文将从基础概念出发,深入探讨Python正则表达式的高级特性、实现方法和最佳实践,为读者提供全面的正则表达式知识体系。

lady_mumu的博客 1169
上一篇: 【Python】高级教程:)面向对象编程
下一篇: 使用Python OpenCV处理图像之图像文件的打开、显示和保存操作
python之光
博客等级 码龄7年 114粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值