如何从电子邮件地址中提取“域”

2023-11-30

我的专栏中有以下模式

[email protected]
[email protected]

现在,我想在之后提取文本@和之前.即 gmail 和 hotmail。我能够在之后提取文本.用下面的代码。

sub(".*@", "", email)

我如何修改上述内容以适合我的用例?


You:

  1. really需要阅读第 3 节RFC 3696(总长:@可以出现在多个地方)
  2. 似乎没有想到,一封邮件也可以“[email protected]", "[email protected]“(即天真地假设只有一个域可能会在分析中的某个时刻回来咬你)
  3. 应该注意的是,如果您确实正在寻找电子邮件“域名”,那么您还必须考虑什么真正构成域名和适当的后缀.

So — 除非您确定您拥有并将始终拥有简单的电子邮件地址——我可以建议:

library(stringi)
library(urltools)
library(dplyr)
library(purrr)

emails <- c("[email protected]", "[email protected]",
            "[email protected]",
            "[email protected]",
            "[email protected]")

stri_locate_last_fixed(emails, "@")[,"end"] %>%
  map2_df(emails, function(x, y) {
    substr(y, x+1, nchar(y)) %>%
      suffix_extract()
  })
##                         host    subdomain      domain suffix
## 1                  gmail.com         <NA>       gmail    com
## 2                hotmail.com         <NA>     hotmail    com
## 3      deparment.example.com   department     example    com
## 4 yet.another.department.com  yet.another  department    com
## 5             froodyco.co.uk         <NA>   froodyorg  co.uk

请注意子域、域和后缀的正确拆分,尤其是最后一个。

知道了这一点,我们就可以将代码更改为:

stri_locate_last_fixed(emails, "@")[,"end"] %>%
  map2_chr(emails, function(x, y) {
    substr(y, x+1, nchar(y)) %>%
      suffix_extract() %>%
      mutate(full_domain=ifelse(is.na(subdomain), domain, sprintf("%s.%s", subdomain, domain))) %>%
      select(full_domain) %>%
      flatten_chr()
  })
## [1] "gmail"                   "hotmail"               
## [3] "department.example"      "yet.another.department"
## [5] "froodyorg"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从电子邮件地址中提取“域” 的相关文章

  • 使用 R 的 flextable 包时,有没有办法将传递给 add_header_lines() 的字符串部分加粗

    我正在使用我喜欢的 flextable 包为 Word 文档创建几个表格 但是 我在将表格标题中的部分文本加粗时遇到了一些麻烦 例如 我希望标题为 Table 1 我的表格标题的其余部分 而不是 表 1 我的表格标题的其余部分 I 找到这个
  • 正则表达式将从文本文件中提取句子

    我需要一个正则表达式来从文本文件中提取句子 示例文本 以 2004 年底发生的亚洲海啸灾难为例 对 Google 新闻 http news google com 的查询在一个月内 1 月 17 日 返回了超过 80 000 篇有关该事件的在
  • 正则表达式 - 将 target="blank" 添加到我的内容中的所有 标记链接

    有人可以帮我在 C net 中创建一个正则表达式来添加target blank to all a 在我的内容中标记链接 如果链接已经设置了目标 则将其替换为 blank 目的是在新窗口中打开我的内容中的所有链接 感谢你的帮助 dotnet岩
  • 正则表达式中的“g”标志是什么意思?

    的含义是什么g正则表达式中的标志 之间有什么区别 g and g用于全局搜索 这意味着它将匹配所有出现的情况 通常你还会看到i这意味着忽略大小写 参考 全局 JavaScript MDN https developer mozilla or
  • R 中的发散积分可在 Wolfram 中求解

    我知道我以前问过同样的问题 但由于我是新来的 这个问题问得不好而且不可重现 因此我在这里尝试做得更好 如果我只编辑旧的 可能没有人会读它 我有一个想要积分的二重积分 ff lt function g t exp 16 g exp 8 t t
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • Bash:单行命令以与 grep 命令相反的状态退出?

    如何减少以下 bash 脚本 grep P STATUS Perfect recess txt exit 1 exit 0 看起来我应该能够用一个命令来完成它 但我这里总共有 3 个命令 我的程序应该 阅读课间休息 txt 如果它包含 ST
  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • 从 R 环境中删除对象

    我正在阅读 Hadley 的 Advanced R 在第 8 章中 他说我们可以使用以下方法从环境中删除对象 rm 但是 移除该物体后我仍然可以看到该物体 这是我的代码 e lt new env e a lt 1 e b lt 2 e a
  • 在另一个 Rmd 中运行选定的块

    我已经在源 Rmd 文件中运行了分析 并且希望仅使用few来自源的块 我已经看到了一些关于从源 Rmd 中提取所有块的答案来自另一个 Rmd 中的 Rmd 文件的源代码 https stackoverflow com questions 4
  • 数字和小数的输入掩码

    在测试我的程序后 我发现了以下错误 我在 sqlserver 中的表包含 价格数字 6 2 我的程序的用户输入价格 555 00 就很好了 但是当他输入 555555 时 这是错误的 所以我需要指定掩码 其中尾数是可选的 0 到 999 小
  • R 更改小数位且不四舍五入

    gt signif 1 89 digits 2 1 1 9 我想要1 8 这有点笨拙 但它会起作用并保持所有数字 x lt 1 829380 trunc dec lt function x n floor x 10 n 10 n Resul
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • 使用 R 进行项目组织 [重复]

    这个问题在这里已经有答案了 可能的重复 统计分析和报告撰写的工作流程 https stackoverflow com questions 1429907 workflow for statistical analysis and repor
  • Notepad++正则表达式,查找大写字母但忽略某些单词

    我想找到所有大写字母 但我需要忽略某些单词 字母 例如 I m Surprised I Myself I Am Excited 在这种情况下 我试图标记所有大写字母 但排除 2 个单独的大写字母I and I m 这是我的出发点 A Z I
  • 为什么这些数字不相等?

    下面的代码显然是错误的 有什么问题 i lt 0 1 i lt i 0 05 i 1 0 15 if i 0 15 cat i equals 0 15 else cat i does not equal 0 15 i does not eq
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co

随机推荐

  • iOS 快速发布请求

    所以我想创建一个具有以下输出的发布请求 user gt email gt email protected password gt FILTERED password confirmation gt FILTERED 相反 我得到 user
  • PHP:“遇到格式不正确的数值”

  • Google App Engine JDO 使持久延迟

    我的 Google App Engine JDO 实现存在问题 我无法弄清楚 文档 http code google com intl sv SE appengine docs java datastore jdo creatinggett
  • 无法通过 Spark 连接到 Mongo DB

    我正在尝试通过 Apache Spark master 从 Mongo DB 读取数据 我为此使用了 3 台机器 M1 上面有一个 Mongodb 实例 M2 带有 Spark Master 带有 Mongo 连接器 在其上运行 M3 带有
  • 为什么按这个顺序列出 monad 组合?

    我正在阅读有关列表单子的内容并遇到 1 2 gt gt n gt a b gt gt ch gt return n ch 它产生 1 a 1 b 2 a 2 b 我是这样理解的 隐式括号是 1 2 gt gt n gt a b gt gt
  • 通过拆分字段值来重塑文档

    假设我们有一组原始数据 person David age 102 person Max age 8 我们希望将该集合转换为 age 102 age 8 仅使用 mongo d 引擎 如果所有人名或年龄都具有相同的长度 substr 可以完成
  • 用于测试的干净的轻量级邮件服务器[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要一个邮件服务器来测试发送和接收电子邮件的应用程序 所以应该 重量轻 体积小 免费 如免费啤酒 首选开源 支持Win XP 支持SMTP IMA
  • ProgressBar 不适用于 fxml 文件和控制器

    所以我用了这个link设置我的进度栏 当我运行此代码时它工作得非常好 但是 根据我的设置 我似乎无法让进度条实际更新 progressBar getProgress 实际上获得了正确的进度 但 UI 没有更新 这是到目前为止的代码 主程序
  • Mac 上使用 Pandoc 进行递归目录解析

    我发现这个问题它回答了使用 Pandoc 执行批量转换的问题 但没有回答如何使其递归的问题 我预先规定我不是程序员 所以我在这里寻求一些帮助 Pandoc 文档中关于将批量文件传递给可执行文件的详细信息很少 并且根据脚本 Pandoc 本身
  • Polymer DomModule 已定义

    我正在构建一个网站 我会在其中使用不同的聚合物组件 其中一些组件会多次使用 我的问题是编译后的代码包含一个 customElements define dom module DomModule 那个抛出 Uncaught DOMExcept
  • 如何使用 Nokogiri 使空标签自动关闭?

    我在 ERB 中创建了一个 XML 模板 我在导出过程中用数据库中的数据填充它 在某些情况下 存在 null 值 在这种情况下元素可能为空 如下所示
  • 在META-INF目录下添加生效的pom.xml

    当我使用 Maven 2 版本2 0 9 or 2 2 1 the pom xml库的内容被复制到META INF maven groupId artifactId JAR 的目录 然而 就我而言 pom xml有父母 我更愿意得到有效的p
  • 如何使用 Spring Web 服务创建自定义肥皂故障消息

    我正在尝试使用 Spring Web 服务库编写一个 Web 服务 我能够成功配置我的端点并且工作正常 但我在异常映射方面遇到了一些问题 我可以使用 SoapFault 和 SoapFaultAnnotationExceptionResol
  • iphone:如何以编程方式检测最后一个来电号码?

    有什么方法可以检测 iPhone 上的最后来电号码和通话时长 我能够获取所有通知 核心电话 但不知道如何获取来电号码 你不能 API 不允许你这样做 我认为出于隐私考虑 苹果永远不会允许这样做
  • 学说实体关系

    我有一个实体模板和另一个请求 本质上 模板代表一个 html 表单 请求将代表表单填充的值的集合以及对模板 ID 的引用 class Request Id Column type integer GeneratedValue private
  • 安卓锁屏

    有没有办法在锁屏上显示文字 喜欢有关未读短信的信息或喜欢锁定屏幕上带有播放 暂停按钮的音乐播放器 Thanks 是的 也不是 他们没有公共 API 来创建或修改锁定屏幕 无论是谁在您的设备上构建了操作系统版本 都创建了您的锁定屏幕 一些制造
  • 如何使用 fastcgi_finish_request() 的示例

    有人可以展示一个关于如何使用的简单示例吗fastcgi finish request 功能 我用谷歌搜索 但只发现了一些一般性的提及 有些人说他们成功地使用了它 但我找不到带有代码的单个示例 例如 我有一个 PHP 对象 为了向浏览器发送响
  • 如何让Javascript忽略或保留空格,而不是删除它们

    我试图让一个函数用破折号覆盖多单词区域 但不用 JavaScript 中的破折号覆盖单词之间的空格 所以 我基本上需要 JS 来忽略空格 或者维护然后 但我在网上找到的只是如何从字符串中删除空格 如果我这样做 那么覆盖该区域的破折号之间仍然
  • jquery遍历查找父级的父级

    HTML li class comment div class p comm div class avatar img src img 1 jpg div div class c auth author a class del title
  • 如何从电子邮件地址中提取“域”

    我的专栏中有以下模式 email protected email protected 现在 我想在之后提取文本 和之前 即 gmail 和 hotmail 我能够在之后提取文本 用下面的代码 sub email 我如何修改上述内容以适合我的