当前所在位置: 首页 > 域名平台

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?

2021-10-11 本站作者 【 字体:

Chrome作为一款简洁快速的浏览器,深得大家的喜爱。并且它超强的稳定性以及丰富的拓展插件更是“深入人心”。就我常用且功能强大的Chrome插件也不少,这里给大家推荐一下。

开始之前先说明一下,要下载Chrome的各类的实用拓展插件你可以访问Chrome网上应用店,搜索安装就可以。

  全力以赴地进入数据集是从事数据科学工作的任何人的使命之一。通常,这意味着要进行数字运算,但是当我们的数据集主要基于文本时,我们该怎么办?我们可以使用正则表达式。在本教程中,我们将仔细研究如何在Python中使用正则表达式(regex)。

  正则表达式(regex)本质上是文本模式,可用于自动搜索和替换文本字符串中的元素。这可以使清理和使用基于文本的数据集变得更加容易,从而省去了手动搜索大量文本的麻烦。

  正则表达式可以在多种编程语言中使用,并且已经存在很长时间了!

  不过,在本教程中,我们将学习Python中的正则表达式,因此需要基本熟悉关键的Python概念,例如if-else语句,while和for循环等。在本教程结束时,您将熟悉Python regex的工作原理,并能够使用Python regex模块中的基本模式和功能re来分析文本字符串。您还将获得有关正则表达式如何与熊猫配合使用以处理大型文本语料库的介绍。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图1)

那如果你进入不了应用店,可以先搜索安装一个谷歌访问助手便解决。或者这里给你介绍一个网站,不用访问Chrome应用店也能容易安装拓展插件。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图2)


Chrome插件下载网址:https://www.crx4chrome.com/


  让我们深入研究有关每个人最不喜欢的电子邮件类型的一些数据:垃圾邮件和欺诈。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图3)

油猴tampermonkey

tampermonkey江湖人称油猴,它能自由定制网页,实现各种你意想不到的功能。即便Chrome仅有油猴而没有其他的拓展也一样能俘获一大批忠实用户。因为它实在是太强大了。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图4)

  我们的任务:分析垃圾邮件

比如油猴能轻易实现解析观看VIP视频、付费音乐下载、解决百度云大文件要调取客户端下载的问题、解决网页不能复制文字的问题、自定义百度云密码、让微软官网隐藏的系统镜像现身等等强大的功能。

  在本教程中,我们将使用Kaggle的欺诈电子邮件语料库。它包含1998年至2007年之间发送的数千种网络钓鱼电子邮件。它们非常有趣,易于阅读。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图5)

IDM

Internet Download Manager简称IDM,它是一款嗅探下载网页视频音频的拓展插件,在不安装客户端的情况下也能轻易下载音视频。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图6)

adblock plus

一款强力去广告的插件,用它你可以跟满屏飞的广告说再见了。它默认会过滤网页上所有烦人的广告、弹窗等等。本人亲历,adblock跟另一个拓展插件“广告净化器”配合使用,能令你的浏览器零广告,当然这它们结合能去除各大视频网站播放视频时候那长长的广告而直接进入正片播放。

  您可以在这里找到完整的语料库。但是,我们将从使用一些电子邮件学习基本的正则表达式命令开始。如果需要,您也可以使用我们的测试文件,也可以在完整的语料库中尝试使用。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图7)

  介绍Python的Regex模块

千图网

一款能免费下载千图网素材的插件。千图网是公认的素材多的在线素材网站之一,如果你有下载素材的需求,那安装它没错。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图8)

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图9)

FireShot

FireShot,一款“任性”的插件,能随意捕捉整个页面、捕捉可见部分、捕捉选定区域等等,如果你有网页长截图的需求的话那就不要错过它了。并且它还有涂鸦编辑的功能,也可能便捷另存为png图片、PDF格式文档等。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图10)

vimium

vimium,可能你听这个名字会觉得很陌生,但是你应该见过电视上一些顶尖的黑客之类的,他们操作电脑从来没用过鼠标,完全就是通过键盘来操作,那你安装上这个插件之后你将它的快键键熟悉了,你也可以像他们一样,完全通过键盘就能来灵活操控浏览器。是不是感觉很炫酷呢?你去试试就知道。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图11)



  首先,我们将通过打开测试文件,将其设置为只读并读取来准备数据集。我们还将其分配给变量fh(用于“文件句柄”)。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图12)

  请注意,我们在目录路径之前加r。此技术将字符串转换为原始字符串,这有助于避免某些机器读取字符的方式引起的冲突,例如Windows上目录路径中的反斜杠。

关于“极力推荐的Chrome拓展插件”,我就给大家分享以上6个,当然了还有一部分也非常实用的就不一一去说了,有待你来补充。

  现在,假设我们要找出电子邮件的来源。我们可以自己尝试使用原始Python:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图13)



  但这并没有给我们确切的需求。如果您看一下我们的测试文件,我们可以找出原因并修复它,但是,让我们使用Python的re模块并使用正则表达式来做吧!

  我们将从导入Python的re模块开始。然后,我们将使用一个名为的函数re.findall(),该函数返回在正在查看的字符串中定义的模式的所有实例的列表。

  外观如下:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图14)



  这与原始Python的长度基本相同,但这是因为这是一个非常简单的示例。您尝试做的越多,Python正则表达式就可以为您节省更多的精力。

  在继续之前,让我们仔细看看re.findall()。此函数采用形式为的两个参数re.findall(pattern, string)。在这里,pattern代表我们要查找的子字符串,并string代表我们要在其中查找的主字符串。主字符串可以包含多行。在这种情况下,我们让它fh使用选定的电子邮件来搜索所有文件。

  该.*是一个字符串模式的简写。正则表达式通过使用这些速记模式来查找文本中的特定模式而起作用,因此让我们看一下其他一些常见示例:

  常见的Python正则表达式模式

  我们re.findall()上面使用的模式包含一个完整拼写的字符串"From:"。当我们确切地知道我们要查找的内容(精确到实际字母以及它们是否为大写或小写)时,这很有用。如果我们不知道我们想要的字符串的确切格式,我们将会迷路。幸运的是,正则表达式具有解决此情况的基本模式。让我们看看在本教程中使用的那些:

  1)w匹配字母数字字符,表示az,AZ和0-9。它还与下划线_和破折号-相匹配。

  2)d 匹配数字,表示0-9。

  3)s 匹配空白字符,包括制表符,换行符,回车符和空格字符。

  4)S 匹配非空格字符。

  5).匹配除换行符外的任何字符n。

  掌握了这些正则表达式模式后,您将在继续进行解释的同时快速理解上面的代码。

使用正则表达式模式

  现在,我们可以.*在re.findall("From:.*", text)上面的行中解释的用法。让我们.先来看:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图15)



  通过在.旁边添加一个From:,我们可以在其旁边查找另一个字符。因为.查找除以外的任何字符n,所以它捕获了我们看不到的空格字符。我们可以尝试更多的点来验证这一点。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图16)



  看起来加点确实为我们获得了线的其余部分。但是,这很繁琐,而且我们不知道要添加多少点。这是星号符号*出现的位置。

  *匹配模式左侧的零个或多个实例。这意味着它将寻找重复模式。当我们寻找重复的模式时,我们说搜索是“贪婪的”。如果我们不寻找重复的模式,则可以将搜索称为“非贪婪”或“懒惰”。

  让我们构建一个贪婪的搜索.用*。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图17)



  因为*匹配在其左侧指示的模式的零个或多个实例,并且.位于此处的左侧,所以我们能够获取From:字段中的所有字符,直到行尾。这将用精美简洁的代码打印出整行。

  我们甚至可以更进一步,仅隔离名称。让我们使用它re.findall()来返回包含模式的行列表,"From:.*"就像之前一样。match为了整洁,我们将其分配给变量。接下来,我们将遍历列表。在每个循环中,我们将re.findall再次执行,匹配第一个引号以仅选择名称:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图18)



  注意,我们在第一个引号旁边使用了反斜杠。反斜杠是一个特殊字符,用于转义其他特殊字符。例如,当我们想将引号用作字符串文字而不是特殊字符时,可以使用反斜杠将其转义,例如:"。如果我们不使用反斜杠转义上面的模式,它将变为"".*"",Python解释器将其读取为两个空字符串之间的句点和星号。它将产生错误并破坏脚本。因此,至关重要的是我们在这里用反斜杠将引号引起来。

  匹配第一个引号后,.*获取行中的所有字符,直到下一个引号也被转义为模式。这使我们得到的名称只是带引号的名称。该名称也打印在方括号中,因为re.findall返回的匹配项在列表中。

  如果我们想要电子邮件地址怎么办?

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图19)



  看起来很简单,不是吗?仅模式不同。让我们来看一看。

  这是我们仅匹配电子邮件地址的前部分的方式:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图20)



  电子邮件总是包含一个@符号,因此我们从它开始。电子邮件中@符号前的部分可能包含字母数字字符,这w是必需的。但是,由于某些电子邮件包含句点或破折号,所以这还不够。我们添加S以查找非空白字符。但是,w\S只会得到两个字符。添加*以查找重复。因此,模式的前部如下所示:\w\S*@。

  现在查看@符号后面的模式:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图21)



  域名通常包含字母数字字符,句点和短划线,因此a .可以。为了使它更贪婪,我们使用扩展了搜索范围*。这使我们可以匹配任何字符,直到行尾。

  如果我们仔细观察这条线,会发现每封电子邮件都封装在尖括号<和>中。我们的模式.*包括右括号>。让我们对其进行补救:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图22)



  电子邮件地址以字母数字字符结尾,因此我们将模式设置为w。因此,在@符号后面有.*\w,这表示我们想要的模式是一组以字母数字字符结尾的任何类型的字符。不包括>。

  因此,我们的完整电子邮件地址格式如下所示:\w\S*@.*\w。

  !这需要花费很多时间。接下来,我们将介绍一些通用re功能,这些功能在开始重新组织语料库时将非常有用。

  常用的Python正则表达式函数

  re.findall()无疑是有用的,但它不是我们可以使用的唯一内置函数re:

  1)re.search()

  2)re.split()

  3)re.sub()

  在使用它们为我们的数据集添加一些顺序之前,让我们一一看一下。

  研究()

  While re.findall()匹配字符串中某个模式的所有实例并在列表中返回它们,re.search()匹配字符串中一个模式的第一个实例,并将其作为re匹配对象返回。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图23)



  像一样re.findall(),re.search()也有两个参数。第一个是要匹配的模式,第二个是要在其中找到模式的字符串。在这里,我们将结果分配给match变量以保持整洁。

  由于re.search()返回re匹配对象,因此无法通过直接打印来显示名称和电子邮件地址。相反,我们必须首先对该group()函数应用该函数。我们已经在上面的代码中打印了这两种类型。如我们所见,group()将match对象转换为字符串。

  我们还可以看到,打印match显示的属性超出字符串本身,而打印match.group()仅显示字符串。

  re.split()

  假设我们需要一种快速的方法来获取电子邮件地址的域名。我们可以通过三个正则表达式操作来做到这一点,如下所示:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图24)



  第一行很熟悉。我们返回一个字符串列表,每个字符串包含From:字段的内容,并将其分配给变量。接下来,我们遍历列表以查找电子邮件地址。同时,我们循环访问电子邮件地址,并使用该re模块的split()功能将每个地址切成两半,用@符号作为分隔符。最后,我们打印它。

  re.sub()

  另一个方便的re功能是re.sub()。就像函数名称所暗示的那样,它替换字符串的一部分。一个例子:

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图25)



  我们之前已经在第一行和第二行看到了任务。在第三行,我们re.sub()在上应用address,这是From:电子邮件标题中的完整字段。

  re.sub()需要三个参数。第一个是要替换的子字符串,第二个是我们要替换的字符串,第三个是主字符串本身。

  正则表达式与pandas

  现在,我们掌握了Python正则表达式的基础知识。但是通常对于数据任务,我们实际上并没有使用原始的Python,而是使用了pandas库。现在,将我们的正则表达式技能带入熊猫工作流程,将其提升到一个新的水平。

  如果您以前从未使用过熊猫,请不要担心。我们将逐步遍历代码,以免您迷路。但是,如果您想更详细地了解熊猫,请查看我们的熊猫教程或我们提供的有关numpy和熊猫的完全交互式课程。

  使用Python Regex和Pandas对电子邮件进行排序

  我们的语料库是一个包含数千封电子邮件的单个文本文件(不过,同样,在本教程中,我们使用的是一个只有两个电子邮件的较小文件,因为在整个语料库上打印正则表达式工作的结果会使这篇文章过长)。

  我们将使用正则表达式和熊猫将每封电子邮件的各个部分分类为适当的类别,以便可以更轻松地阅读或分析语料库。

  我们将每封电子邮件分为以下类别:

  1)sender_name

  2)sender_address

  3)recipient_address

  4)recipient_name

  5)date_sent

  6)subject

  7)email_body

  这些类别中的每一个都将成为我们的熊猫数据框(即我们的表格)中的一列。这将使我们更轻松地分别处理和分析每个列。

  我们将继续处理我们的小样本,但是值得重申的是,正则表达式使我们可以编写更简洁的代码。简洁的代码减少了我们的机器必须执行的操作数量,从而加快了我们的分析过程。使用我们的两封电子邮件的小文件,并没有太大的区别,但是,如果您尝试使用和不使用正则表达式来处理整个语料库,您将开始看到其优势!

  准备脚本

  首先,让我们导入所需的库,然后再次打开文件。

  除了re和之外pandas,我们email还将导入Python的软件包,这将有助于电子邮件的正文。仅使用正则表达式时,电子邮件的主体相当复杂。它甚至可能需要足够的清理才能保证有自己的教程。因此,我们将使用完善的email软件包来节省一些时间,让我们专注于学习正则表达式。

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图26)



  我们还创建了一个空列表emails,用于存储字典。每本词典将包含每封电子邮件的详细信息。

  现在,让我们开始应用正则表达式!

你极力推荐的Chrome扩展有哪些?swift中,正则表达式没有办法给分组捕获命名吗?(图27)



  注意:为简洁起见,我们剪裁了上面的打印输出。如果您在自己的机器上打印此文件,它将显示其中包含的所有内容,contents而不是...像上面那样结束。

  我们使用re模块的split函数将整个文本块分割fh为单独的电子邮件列表,然后将其分配给变量contents。这很重要,因为我们希望通过使用for循环遍历列表来逐一处理电子邮件。但是,我们如何知道按字符串分割"From r"?

  我们之所以知道这一点,是因为在编写脚本之前我们已经查看了文件。我们不必细读其中的数千封电子邮件。只是前几个,看看数据的结构是什么样子。只要有可能,最好在开始使用代码之前先关注实际数据,因为您经常会发现诸如此类的有用功能。

  我们已经截取了原始文本文件的屏幕截图:

阅读全文
id_1广告位-300*300
相关推荐

一文弄懂vlan、三层交换机、网关、DNS、子网掩码、MAC地址抖音收购支付牌照,字节跳动储备新域名,官方称为防恶意侵权

一文弄懂vlan、三层交换机、网关、DNS、子网掩码、MAC地址抖音收购支付牌照,字节跳动储备新域名,官方称为防恶意侵权
11月30日,有消息称,字节跳动常用来存储自家域名的注册商“易名”旗下新增一个名...

中文域名是什么意思域名是什么意思啊

中文域名是什么意思域名是什么意思啊
域名,简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机...

阿里云服务器购买教程购买云服务器送的免费域名是已经备案了吗

阿里云服务器购买教程购买云服务器送的免费域名是已经备案了吗
1.购买云服务器送的免费域名,如果是测试的临时域名,是备案了的。2.如果是自己买...

互联网经营许可证怎么办?互联网药品交易服务的资格证书怎么办理?

互联网经营许可证怎么办?互联网药品交易服务的资格证书怎么办理?
首先感谢悟空问答的邀请,最近比较忙,终于抽出时间来认真回答几个问题了,也希望能帮...

域名注册申请需要准备哪些材料?gov.cn域名还能申请吗?

域名注册申请需要准备哪些材料?gov.cn域名还能申请吗?
 gov.cn域名仅供政府机构注册,个人与企业不能注册。如需要注册.gov 必须...

frp通过指定域名访问部署于内网的 web 服务SAE 场景下,应用流量的负载均衡及路由策略配置实践

frp通过指定域名访问部署于内网的 web 服务SAE 场景下,应用流量的负载均衡及路由策略配置实践
流量管理从面向实例到面向应用在 Serverless 场景下,由于弹性能力以及底...

搭建属于自己的内网穿透SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6

搭建属于自己的内网穿透SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6
前言  大家好我是不一样的科技宅,每天进步一点点,体验不一样的生活。今天给大家带...

DNS解析域名:发现域名和IP不一致,访问了该域名会如何?github项目:tcp穿透内网passbytcp

DNS解析域名:发现域名和IP不一致,访问了该域名会如何?github项目:tcp穿透内网passbytcp
目的网上搜索了不少tcp内网穿透的代码,功能全的大多是go版本,无奈对go不感冒...

哪家域名支持url转发功能如何判断域名URL转发是否正常?

哪家域名支持url转发功能如何判断域名URL转发是否正常?
展开全部看能否访问了。URL转发的缺点: 1)经过我们实际测试,速度上要比...

基于JavaFx和SpringBoot搭建的实用小工具集合Shopify后台撰写、隐藏、删除博客文章操作教程

基于JavaFx和SpringBoot搭建的实用小工具集合Shopify后台撰写、隐藏、删除博客文章操作教程
在shopify店铺中创建博客后,您便可以开始撰写博客文章。您的文章可以包含文字...