正则表达式快速入门(快速入门|Python DataFrame +正则表达式处理数据实例一则)

:暂无数据 2026-09-09 05:50:06 :1

正则表达式快速入门(快速入门|Python DataFrame +正则表达式处理数据实例一则)

各位老铁们好,相信很多人对正则表达式快速入门都不是特别的了解,因此呢,今天就来为大家分享下关于正则表达式快速入门以及快速入门|Python DataFrame +正则表达式处理数据实例一则的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

快速入门|Python DataFrame +正则表达式处理数据实例一则

提取三个版本的程序testing log中的test case名和测试结果,并对比不同版本程序的每一个case的结果,再计算每个test case在三个版本中的失败率。

//不熟悉如何写正则表达式的参考 我的上一篇文章
注意方法括号内的语法为【r"你的正则表达式"】
re.compile() 方法生成一个正则表达式对象,调用此对象的方法.findall(),输入待处理的string,得到所有匹配结果。返回值类型为list,例:Output:
若你的正则表达式有多个capture group,则为list包括的tuple。
直接用list创建DataFrame对象,参数为list和你给出的列名,在这里‘case’为第一列的列名,第二列列名通过传入的变量version确定

得到结果类如表格

因为程序testcase的ID本身就是唯一的,用作index方便join,所以我们不再需要默认的数字index

使用df的 .join() 方法,将所有版本的df在’case’列,也就是我们的index列进行left join
最后,我们返回dfs,也就是完成全部左交后的总结果。

输出结果如下:

正则表达式

《main role="main" class="App-main" style="padding-bottom: 46px;"》

首发于 Python办公自动化

无障碍 写文章

登录

《article class="Post-Main Post-NormalMain" tabindex="-1" style="box-sizing: border-box; outline: none;"》

《header class="Post-Header" style="margin: 0px auto; width: 690px;"》

第一小乔乔

进一步,是一步。一起工作进步,厨艺精进,生活美满。

22 人赞同了该文章

《/header》

match()和search()都只匹配出一个符合条件的字符串,若想要所有,可以使用re.findall()

# 用{}判断密码是否符合要求 :密码是由数字和字母组成,并且位数是6-16位

##用split按-或者空白格分割字段

结果:

#用sub替换符合条件的关键词, 试试马赛克脏话(想起农药不能痛骂队友的愤怒)

##练练转义

## findall返回符合表达式的子串

一、正则表达式语法

正则表达式是用匹配或者描述字符串的工具。

用处:

a.判断字符串是否满足某个条件---判断输入的字符串是否是邮箱/手机号码。是否是ip地址

b.提取满足条件的字符串

c.字符串替换

Python中通过re模块中相应的方法来支持正则表达式的匹配、查找和替换等功能

fullmatch(正则表达式字符串, 字符串) ---》 判断正则表达式和字符串是否完全匹配

正则表达式字符串: 就是一个字符串,字符串中是正则表达式语法。r’正则表达式’

正则表达式中包含两个部分,一个是正则语法对应的字符,二个是普通字符

1 .(点)(匹配任意字符)

一个.只匹配一个任意字符

2 \w(匹配字母数字下划线)

一个\w匹配一个字符

3 \s(匹配任意空白字符)

空白字符: 空格、制表符(\t)、回车(换行\n)等,都输入空白字符

一个\s匹配一个空白字符

4 \d(匹配数字字符)

一个\b不会去匹配一个字符,而是单纯的检测\b出现的位置是否是单词边界

单词边界: 字符串开始和结尾、空格、换行、标点符号等,可以将两个单词隔开的字符都单词边界

6 ^(检测是否是字符串开头)

re_str = r’^\d\d\d’ # 判断一个字符串是否是三个数字开头

7 $(检测是否是字符串结尾)

8 \W(匹配非字母、数字下划线)

9 \S(匹配非空白字符)

10 \D(匹配非数字字符)

11 \B(检测是否不是单词边界)

12 (匹配中括号中出现的任意一个字符)

一个匹配一个字符

--》 匹配一个字符,这字符是字符集中的任意一个字符

例如:

--》 匹配一个字符,这个字符是Unicode编码值在字符1到字符2中的任意一个字符;要求字符1的编码值要小于字符2

例如: --》 大写字母

--》 数字1到9

--》 匹配所有的汉字

注意:-在中括号中,如果放在两个字符之间表示范围。

13 (匹配一个不在字符集中的任意字符)

注意:^必须放在中括号中的最前面才有效

二、正则表达式次数相关符号

from re import fullmatch

1. *(匹配0次或者多次)

字符* --》 字符出现0次或者多次

2. +(匹配一次或者多次)

3. ?(匹配0次或者1一次)

练习:写一个正则表达式,匹配所有的整数(123, -2334, +9...可以匹配的,012, -023,+0122不能匹配)

{N} --》 匹配N次

{M,N} --》 匹配M到N次

{M,} --》 至少匹配M次

{,N} --》 最多匹配N次

三、分之和分组

import re

1. |(分之)

条件1|条件2 --》 先用条件1去匹配,如果匹配成功就匹配成功。如果条件1匹配失败,用条件2去匹配。

注意:如果条件1匹配成功就不会用条件2再去匹配

能匹配成功时abc,d和aaa

’abc’+W/H/Y

2. ()(分组)

a.组合(将括号中的内容作为一个整体进行操作)

b.捕获 -- 使用带括号的正则表达式匹配成功后,只获取括号中的内容

c.重复 -- 在正则表达式中可以通过\数字来重复前面()中匹配到的结果。数字代表前第几个分组

a.组合

匹配一个字符串,以数字字母的组合出现3次

b.捕获

c.重复

3.转义符号

正则表达式中可以通过在特殊的符号前加\,来让特殊的符号没有意义

. --》 任意字符 . --》 字符.

注意:在中括号有特殊功能的符号,只代表符号本身

\不管在哪儿都需要转义

-在中要表示-本身,就不要放在两个字符之间

()需要转义

四、re模块中的函数

import re

1. compile

compile(正则表达式字符串) --》 将正则表达式字符串转换成正则表达式对象

2. fullmatch和match

fullmatch(正则表达式字符串, 字符串)

--》 用正则表达式去完全匹配字符串(匹配整个字符串),返回匹配对象(SRE_Match)或者None

match(正则表达式字符串, 字符串)

--》 匹配字符串开头,返回匹配对象或者None

1.span(group=0) --》 获取匹配成功的区间(左闭右开区间)

print(result.span(0))

print(result.start(1)) # 获取匹配到的开始下标

print(result.end(1)) # 获取匹配到的结束下标后的下标

2.group(group = 0) --》 获取匹配结果

group()/group(0) --》 获取正则表达式完全匹配的结果

group(index》0) --》 获取正则表达式中第group个分组匹配到的结果

3.string --》 获取被匹配的原字符串

3.search

search(正则表达式, 字符串)

--》 查找字符串中满足正则表达式的第一个字符串。返回值是匹配对象或者None

练习:使用search匹配出一个字符串中所有的数字字符串’abc34jshd8923jkshd9lkkk890k’ --》 34,8923,9,890

4.findall

findall(正则表达式, 字符串) --》 获取字符串中满足正则表达式的所有的子串,返回一个列表

注意:如果正在表达式中有分组,取值的时候只取分组中匹配到的结果;

如果有多个分组,会将每个分组匹配到的结果作为一个元祖的元素

5.finditer

finditer(正则表达式, 字符串)

--》 查找所有满足正则条件的子串,返回值是迭代器,迭代器中的元素是匹配对象

6. split

split(正则表达式,字符串) --》 将字符串按照满足正则表达式条件的子串进行分割

"""

str1 = ’ahsb1sssa8-jjhd7nhs+90nsjhf3-4hhh7+8kjj-’

result = re.split(r’’, str1)

print(result)

7.sub

sub(正则表达式,repl,字符串) --》 将字符串中满足正则表达式条件的子串替换成repl。返回替换后的字符串

作业

1. 写一个正则表达式判断一个字符串是否是ip地址

规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小是0-255 例如:255.189.10.37 正确 256.189.89.9 错误

2. 计算一个字符串中所有的数字的和

例如:字符串是:‘hello90abc 78sjh12.5’ 结果是90+78+12.5 = 180.5

3. 验证输入的内容只能是汉字

4. 电话号码的验证

二、不定项选择题

于 2020-12-21 17:02

Python

正则表达式

赞同 22

3 条评论

分享

《/article》

懒人必备

***隐藏网址***
[# 【Python】正则表达式基础知识

正则表达式(regular expression)是一种处理字符串的工具,功能十分强大。正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理,可以快速,准确地完成复杂…

***隐藏网址***

***隐藏网址***
[# Python之正则表达式入门

前言:此文实际上是本人在慕课学习北京理工大学课程:Python网络爬虫与信息提取 一课所做的一部分笔记,是作为初学者的入门笔记,自然有许多遗漏或者疏忽,欢迎大家指出。一、正则表达式基…

***隐藏网址***

切换为时间排序

写下你的评论...

《label class="UploadPicture-wrapper" style="cursor: pointer;"》《/label》

发布

《/main》

《label class="Editable-languageSuggestionsInput Input-wrapper" style="position: relative; display: flex; -webkit-box-align: center; align-items: center; width: 180px; height: 34px; padding: 4px 10px; font-size: 14px; background: rgb(255, 255, 255); border: 1px solid rgb(235, 235, 235); border-radius: 3px; box-sizing: border-box; transition: background 0.2s ease 0s, border 0.2s ease 0s; cursor: pointer;"》《input autocomplete="off" role="combobox" aria-expanded="false" aria-autocomplete="list" aria-activedescendant="AutoComplete17-0" id="Popover16-toggle" aria-haspopup="true" aria-owns="Popover16-content" class="Input" placeholder="选择语言" value="" style="-webkit-box-flex: 1; flex: 1 1 0%; padding: 0px; overflow: hidden; font-family: inherit; font-size: inherit; font-weight: inherit; background: transparent; border: none; resize: none; color: rgb(18, 18, 18); height: 24px; line-height: 24px; cursor: inherit;"》《/label》

有粒子滤波算法及其应用这本书上的例程程序吗

  有粒子滤波算法及其应用这本书上的例程程序
  数据抽取法从已经存在的维度的数据中抽取内容组的名字,从而组成内容组。这个方法使用正则表达式来分析维度,并自动抽取其中的数据来形成分组。
  需要指出,建立的组名是存在于页面标题维度中,然后利用一个正则表达式提取恰当的值形成的。
  对于那些不使用正则表达式的人,括号中的值会自动被提取,接着Google Analytics会使用该值作为组名。将会看到这个规则适用于所有5中的产品页,只要产品页的page title的格式是规整的。
  优点:无需手动配置代码,采集方式灵活。
  缺点:添加新的内容到网站或应用程序,就可能需要更新正则表达式,尤其是一些不符合新的情况的正则表达式。
  如果不熟悉正则表达式,这里有一个Google官方的快速入门。

c#用httprequest来模拟网页访问,如果网站的set-cookie中包含空格,逗号,分号这种情况怎么处理

其实这种字符处理的用正则表达式非常方便的,正则表达式是专门进行字符处理的一个类,推荐你花点时间看看 30分钟正则表达式入门教程
一点小的建议,如果你要写这类HTTP协议的小程序的话,用易语言是非常方便的,现在流行用易语言写这种程序,能非常快速的完成。

Shell输出文本中的指定行

在Linux系统上如何快速查看文本中指定行呢?有时文本较大比如有10w行,想要快速查看第99行该怎么做呢?
本文以文件名test.txt为例,介绍3种方式快速查看test.txt的第99行。相信你可以轻易的举一反三。

sed全名:stream editor,流器,使用程序的方式来文本,可以实现替换、删除、新增、选取特定行等功能,是一种很hacker的方式。sed基本上使用正则表达式匹配,对正则表达式要求较高。
想要快速入门sed参考 sed简明教程 ,想要深入学习参考 sed完整手册 。

关键Options介绍:

ps: 以上命令并不会真的修改掉test.txt的内容,如果想修改文本内容可以使用重定向,或者使用 -i 选项。

有了以上的sed基础,可以轻易得出解决方案: sed -n ’99,p’ test.txt 。但sed在print后并不会立即退出,还会继续搜索文件直到文件末尾,当文件较大的时候使用sed的效率会比较低。可以做如下优化: sed -n ’99,p;100q’ test.txt ,打印完之后在100行退出。

sed -n ’1p;10p’ test.txt

sed -n ’1,10p’ test.txt

sed -n ’1,5p;9p’ test.txt

awk: 文本处理工具,可以在文件中查找与模式匹配的行并在这些行上执行指定的操作。awk比sed早诞生2-3年,作用与sed类似。快速入门awk可参考 awk简明教程 。

awk提供了一系列内建变量:

使用内建变量NR和FNR:

ps: awk打印完也不会立即退出,可以添加exit优化:awk ‘NR==99 {print; exit}’ test.txt

head和tail故名思意,相对简单,分别输出文件或流的开头n行或结尾n行,就不在此详细介绍了。直接给出解决方案:
tail -n+99 test.txt|head -1

很容易想到对称的组合: head -99 test.txt|tail -1 ,但是当文件不足99行时,输出的是文件最后一行的内容。

正则表达式入门经典的目录

第1章正则表达式概述
1.1什么是正则表达式
1.2可以使用正则表达式做什么
1.3使用过的正则表达式
1.4为什么正则表达式看起来令人生畏
1.5支持正则表达式的语言
1.6替换大量文本
第2章正则表达式工具和使用方法
2.1正则表达式工具
2.2基于语言和平台的工具
2.3使用正则表达式的分析方法
第3章简单的正则表达式
3.1匹配单个字符
3.2匹配可选字符
3.3其他限量操作符
3.4大括号语法
3.5练习
第4章元字符和修饰符
4.1正则表达式的元字符
4.2空白和非空白元字符
4.3修饰符
4.4练习
第5章字符类
5.1字符类概述
5.2在字符类中使用范围
5.3字符类中元字符的含义
5.4对字符类取反
5.5POSIX字符类
5.6练习
第6章字符串.行和词边界
6.1字符串.行和词边界
6.2什么是词
6.3识别词边界
6.4练习
第7章正则表达式中的圆括号
7.1使用圆括号分组
7.2交替选择
7.3捕获圆括号
7.4非捕获的圆括号
7.5反向引用
7.6练习
第8章向前查找和向后查找
8.1为什么需要向前查找和向后查找
8.2向前查找
8.3肯定式向前查找的例子
8.4向后查找
8.5如何匹配位置
8.6练习
第9章正则表达式的灵敏度和特殊性
9.1什么是灵敏度和特殊性
9.2灵敏度和特殊性的平衡
9.3元字符如何影响灵敏度和特殊性
9.4了解数据.灵敏度和特殊性
9.5重新分析StarTrainingCompany的例子
9.6练习
第10章说明和调试正则表达式
10.1说明正则表达式
10.2了解你的数据
10.3创建测试用例
10.4调试正则表达式
第11章在MicrosoftWord中使用正则表达式
11.1用户界面
11.2可用的元字符
11.3例子
11.4搜索和替换的例子
11.5VBA中的正则表达式
11.6练习
第12章在StarOffice/OpenOffice.orgWriter中使用正则表达式..
12.1用户界面
12.2可用的元字符
12.3搜索的例子
12.4搜索和替换的例子
12.5POSIX字符类
12.6练习
第13章通过findstr使用正则表达式
13.1findstr简介
13.2findstr支持的元字符
13.3词边界位置
13.4行开始位置和结束位置
13.5单个文件的例子
13.6多个文件的例子
13.7文件列表的例子
13.8练习
第14章PowerGREP
14.1PowerGREP的界面
14.2PowerGREP支持的元字符
14.3复杂一点的例子
14.4练习
第15章MicrosoftExcel中的通配符
15.1Excel的查找界面
15.2Excel支持的通配符
15.3在记录单中使用通配符
15.4在筛选中使用通配符
15.5练习
第16章SQLServer2000中的正则表达式功能
16.1支持的元字符
16.2在LIKE中使用正则表达式
16.3对字符类取反
16.4使用全文搜索
16.5图像字段中的筛选器
16.6练习
第17章在MySQL中使用正则表达式
17.1MySQL简介
17.2MySQL支持的元字符
17.3使用REGEXP关键字和元字符
17.4社会保险号的例子
17.5练习
第18章正则表达式与MicrosoftAccess
18.1MicrosoftAccess中元字符的用法
18.2Access支持的元字符
18.3使用#元字符
18.4使用#字符匹配日期/时间数据
18.5在Access中使用字符类
18.6练习
第19章JScdpt和JavaScript中的正则表达式
19.1在JavaScript和JScript中使用正则表达式
19.2JavaScript和JScnPt中的元字符
19.3说明JavaScript正则表达式
19.4验证SSN的例子
19.5练习
第20章正则表达式与VBS
20.1RegExp对象及其用法
20.2使用Match对象和Matches集合
20.3VBScript支持的元字
20.4练习
第21章VisualBasic. NET与正则表达式
21.1System.Text.RegularExpressions命名空间
21.2VisualBasic. NET支持的元字符
21.3练习
第22章C#和正则表达式
22.1System.Text.RegularExpressions命名空间中的类
22.2VisualC#.NET支持的元字符
22.3练习
第23章PHP和正则表达式
23.1PHP5.0入门
23.2PHP组件如何支持正则表达式
23.3PHP支持的元字符
23.4练习
第24章W3CXMLSchema中的正则表达式
24.1W3CXMLSchema基础
24.2练习
第25章Java中的正则表达式
25.1java.util.regex包简介
25.2java.util.regex包中支持的元字符
25.3使用String类的方法
25.4练习
第26章Peri中的正则表达式
26.1下载并安装Perl
26.2使用Perl正则表达式的基本条件
26.3使用Perl正则表达式
26.4Perl支持的元字符
26.5在Perl中使用正则表达式匹配模式
26.6一个简单的PerlRegex测试程序
26.7练习
附录练习答案
……

C++语言零基础快速入门教程

  1. C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。最新正式标准C++于2014年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性。

  2. 快速入门要点:

    1.用C++语言编写程序

    用高级语言编写的程序称为“源程序”(source program)。源程序的后缀取决于C++实现。

    2.对源程序进行编译

    为了使计算机能执行高级语言源程序,必须先用一种称为“编译器(complier)”的软件(也称编译程序或编译系统),把源程序翻译成二进制形式的“目标程序(object program)。

    编译是以源程序文件为单位分别编译的。目标程序一般以.obj或.o作为后缀(object 的缩写)。编译的作用是对源程序进行词法检查和语法检查。编译时对文件中的全部内容进行检查,编译结束后会显示出所有的编译出错信息。一般编译系统给出的出错信息分为两种,一种是错误(error);一种是警告(warning)

    3. 将目标文件连接

    在改正所有的错误并全部通过编译后,得到一个或多个目标文件。此时要用系统提供的“连接程序(linker)”将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可执行的二进制文件,它的后缀是.exe,是可以直接执行的。

    4.运行程序

    运行最终形成的可执行的二进制文件(.exe文件),得到运行结果。

    如果运行结果不正确,应检查程序或算法是否有问题。

关于正则表达式快速入门,快速入门|Python DataFrame +正则表达式处理数据实例一则的介绍到此结束,希望对大家有所帮助。

正则表达式快速入门(快速入门|Python DataFrame +正则表达式处理数据实例一则)

本文编辑:admin

更多文章:


怎么做网站网页归档(网页应该怎么做网页设计有哪些要求)

怎么做网站网页归档(网页应该怎么做网页设计有哪些要求)

大家好,怎么做网站网页归档相信很多的网友都不是很明白,包括网页应该怎么做网页设计有哪些要求也是一样,不过没有关系,接下来就来为大家分享关于怎么做网站网页归档和网页应该怎么做网页设计有哪些要求的一些知识点,大家可以关注收藏,免得下次来找不到哦

2026年10月11日 05:30

跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意

跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意

本篇文章给大家谈谈二郎腿贴地,以及跷二郎腿太低好吗对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 05:10

易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)

易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)

本篇文章给大家谈谈易语言点击js按钮,以及易语言网页填表怎样点击链接为“javascript:void(0)“的按钮对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要

2026年10月11日 03:00

regards(Regards,什么意思)

regards(Regards,什么意思)

其实regards的问题并不复杂,但是又很多的朋友都不太了解Regards,什么意思,因此呢,今天小编就来为大家分享regards的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 01:10

dom4j文档(如何去掉用dom4j生成的XML文档中的)

dom4j文档(如何去掉用dom4j生成的XML文档中的)

其实dom4j文档的问题并不复杂,但是又很多的朋友都不太了解如何去掉用dom4j生成的XML文档中的,因此呢,今天小编就来为大家分享dom4j文档的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 01:00

compare with造句(用compared with和compared to造句)

compare with造句(用compared with和compared to造句)

“compare with造句”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看compare with造句(用compared with和compared to造句)!

2026年10月10日 23:30

xshell软件(Xshell怎么更改字体大小)

xshell软件(Xshell怎么更改字体大小)

各位老铁们好,相信很多人对xshell软件都不是特别的了解,因此呢,今天就来为大家分享下关于xshell软件以及Xshell怎么更改字体大小的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月10日 22:50

tensorflow与keras对应版本(为什么tensorflow2.8没有keras)

tensorflow与keras对应版本(为什么tensorflow2.8没有keras)

各位老铁们好,相信很多人对tensorflow与keras对应版本都不是特别的了解,因此呢,今天就来为大家分享下关于tensorflow与keras对应版本以及为什么tensorflow2.8没有keras的问题知识,还望可以帮助大家,解决

2026年10月10日 22:10

个人网站首页界面(深圳社会保险服务个人网页主页)

个人网站首页界面(深圳社会保险服务个人网页主页)

“个人网站首页界面”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看个人网站首页界面(深圳社会保险服务个人网页主页)!

2026年10月10日 22:00

maven仓库jar网站(如何在maven仓库中添加jar包)

maven仓库jar网站(如何在maven仓库中添加jar包)

这篇文章给大家聊聊关于maven仓库jar网站,以及如何在maven仓库中添加jar包对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月10日 19:50

最近更新

热门文章

by网站域名444(444ppp现在是什么域名)
2026-08-19 20:20:31 浏览:13
韩国大片视频mv(韩国20个感人mv)
2026-07-11 13:10:02 浏览:12
标签列表