在 R 中使用 stringr 的具有非捕获组的正则表达式

2024-04-25

我正在尝试将非捕获组与str_extract函数从stringr包裹。这是一个例子:

library(stringr)
txt <- "foo"
str_extract(txt,"(?:f)(o+)")

这返回

"foo"

虽然我希望它只会返回

"oo"

就像在这篇文章中一样:https://stackoverflow.com/a/14244553/3750030 https://stackoverflow.com/a/14244553/3750030

在使用 R 进行匹配时,如何使用 R 中的非捕获组从返回值中删除组的内容?


当您使用正则表达式时(?:f)(o+)这不会Capture但它肯定会匹配。

捕获的意思是存储在内存中用于反向引用,以便它可以用于同一字符串中的重复匹配或替换captured string.

就像在这篇文章中一样:https://stackoverflow.com/a/14244553/3750030 https://stackoverflow.com/a/14244553/3750030

你误解了这个答案。非捕获型团体并不意味着不匹配。它被捕获在$1(组 1)因为它之前没有组。

如果您愿意Only匹配假设B其次是A那么你应该使用positive lookbehind像这样。

Regex: (?<=f)(o+)

解释:

  • (?<=f)这将寻找f出现在以下标记后面,但是不会匹配.

  • (o+)这将匹配和捕获为组(此处为 $1)如果前面的条件为真。

Regex101 演示 https://regex101.com/r/vQ8nZ3/1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中使用 stringr 的具有非捕获组的正则表达式 的相关文章

  • 在 Linux 集群上安装 R `forecast` 包:编译器问题?

    我正在寻找测试性能R 更具体地说是一些例程forecast封装在具有 Intel Xeon Phi 协处理器的 HPC 集群上 据我所知 系统管理员已经建立了R 3 2 5按照英特尔网站上的说明从来源获取 https software in
  • 按 data.table 中的所有列进行分组时,.SD 为空

    我无法获得一致的输出data table使用一致的语法 请参阅下面的示例 library data table d lt data table x c 1 1 2 2 y c 1 1 2 2 data table shown below x
  • rpart 绘图文本较短

    我正在使用prp函数从rpart plot包来绘制一棵树 对于像状态这样的分类数据 它给出了一个非常长的变量列表 并且使其可读性较差 如果超过一定长度 有什么方法可以将文本换行为两行或更多行吗 这是一个将长分割标签包装在多个标签上的示例 线
  • 散点图的连续分位数

    我有一个数据集 我为其绘制了回归图 使用ggplot2 s stat smooth ggplot data mydf aes x time y pdm geom point stat smooth col red 我还想使用相同的方法获得分
  • 如果满足条件,如何对连续行进行子集化

    我正在使用 R 来分析多个时间序列 1951 2013 其中包含每日最高和最低温度值 数据具有以下结构 YEAR MONTH DAY MAX MIN 1985 1 1 22 8 9 4 1985 1 2 28 6 11 7 1985 1 3
  • 当行数变化时如何绑定向量和矩阵

    在迭代算法中 我在每个步骤中确定要考虑的一行 几行或不考虑进一步计算 为了存储感兴趣的行 我必须绑定两个变量 X id 和 X val 我目前使用 cbind X id X val 当 X id 和 X val 都是矩阵时 它工作得很好 X
  • 使用地理编码发出一个请求后超出查询限制

    我正在使用 ggmap 的地理编码来查找不同城市的纬度和经度 昨天它工作得很好 但今天只发出一个请求后我就收到了 OVER QUERY LIMIT 事实上 如果我只是加载库并运行地理编码 它会抛出 OVER QUERY LIMIT 错误 g
  • 使用geom_sf时向ggplot2添加多个图例

    我的问题结合了之前在 Stackoverflow 上发布的两个单独的问题 向 ggplot 添加多个图例 https stackoverflow com questions 26443371 adding multiple legends
  • R,闪亮,应用程序之前的弹出窗口

    我正在开发一个闪亮的应用程序 它可以在启动时访问 MySQL 服务器并从中提取大量数据 这些数据稍后会在使用应用程序期间被过滤 由于传输的数据量相当大 第一个查询需要花费很多时间 这就是为什么我想创建一个对话框 弹出窗口或类似的东西 在应用
  • ggplot2 使用 geom_line 手动指定颜色

    我正在尝试绘制下面的图表 并想手动指定颜色 我需要按基因型绘制 因为有多个基因型属于同一个 Bgrnd All 并且我希望它们在绘制的线条中单独出现 但是 我想按 Bgrnd All 对线条进行着色 特别是按照我在 scale fill m
  • 使用正则表达式惰性(不贪婪)匹配多个组

    我想获取成对之间任何值的内容
  • 正则表达式贪心问题 (C#)

    我有一个像 text 和 text 这样的输入字符串 我想用相应的 html 标签替换 wiki 语法 input text and text 理想的输出 h1 text and h1 text 但使用以下代码我得到以下输出 var reg
  • Perl Regex:如何从 CSV 行中删除引号内的引号

    我从 CSV 文件中得到了一行 作为场围场和 作为字段分隔符作为字符串 有时有 在打破场围的数据中 我正在寻找一个正则表达式来删除这些 我的字符串看起来像这样 my csv qq 123456 024003 Stuff 28 stuff w
  • 如何将表格与森林图对齐(ggplot2)

    我是 R 新手 创建了一个森林 区间图 并在图旁边包含了一个表格 其中包含我的置信区间和风险比 我的问题是 RR 和 CI 与绘图上的水平网格线不完全对齐 我尝试使用此处所示的拼凑解决方案 但这似乎对我不起作用 grid arrange 更
  • 使用 PowerShell 从文本段落中提取 6 位数字字符串会产生空白数据

    尝试使用 PowerShell 从一段文本中提取 6 位数字字符串 但它仅在一种情况下有效 6 位数字字符串位于 Windows 剪贴板中的一段文本内 在我的代码中 我期望变量 Matches 0 是我要查找的 6 位数字 但结果始终为空
  • R data.table 计算行数,直到达到值

    我想在 data table 中返回一个新列 该列显示在达到低于当前值 Temp 的值之前有多少行 library data table set seed 123 DT lt data table Temp runif 10 0 20 这就
  • 在闪亮的应用程序中选择文件夹或文件夹目录

    我在使用闪亮时遇到问题 我想选择保存我要在应用程序中使用的所有文件的文件夹 方法是 1 将工作目录设置为该文件夹路径 或 2 将此文件夹内的所有 csv 数据上传到我的应用程序以进行进一步处理 1 我找到了shinyFiles包 但它非常非
  • 循环遍历字符串中的 html 标签并将内部文本添加到数组中

    我有一些 HTML 内容保存为字符串 我想循环遍历该字符串中的每个标题标签并获取其内部文本 let str h1 topic 1 h1 p desc of topic 1 p h1 topic 2 h1 p desc of topic 2
  • 用正则表达式动态替换部分条件块

    有一个字符串 格式为 else if rule somerule1 echo s 1 n name surname else if rule somerule2 echo s 1 n another text here s 只能有数字 n
  • 按组保留行,直到列中值第一次出现为止。不允许存在值的组

    我有一个像这样的数据框 gt df id type 1 1 a 2 1 a 3 1 b 4 1 a 5 1 b 6 2 a 7 2 a 8 2 b 9 3 a 10 3 a 我想保留每个组 id 的所有行 直到类型列中第一次出现值 b 为止

随机推荐

  • asp.net mvc数据注释验证url

    有人可以告诉我如何验证一个网址吗http www abc com http www abc com 让 System Uri 为您完成繁重的工作 而不是 RegEx public class UrlAttribute ValidationA
  • vs2010 C++ 尾调用优化

    考虑以下代码 int fac aux int x int res if x 1 return res else return fac aux x 1 res x int fac int x return fac aux x 1 int ma
  • 调用视图文件时如何传递参数?

    我使用 Sinatra 和 Haml 编写了一个 Web 表单 用于调用 Ruby 脚本 一切看起来都很好 除了一件事 我需要从 Sinatra Ruby 脚本将参数传递给 Haml 视图文件 这是我的代码的一部分 usr bin env
  • 在本地系统上模拟多个用户/提交者

    从我的书中 我试图学习如何在本地系统本身上模拟多个 git 用户 我 将假装是所有这些多个用户 我按照书中的说明模拟多个用户对存储库提交更改 本书的输出显示了两个不同的人git log是 被执行 但是 我的输出仅显示一个用户 那就是我 如何
  • 尝试使用 qemu-arm 运行arm二进制文件时如何解决“加载共享库时出错”?

    我正在运行 Linux Mint 14 并安装了 qemu qemu user 和 gnueabi 工具链 我编译了 test carm linux gnueabi gcc test c o test 当我尝试跑步时qemu arm usr
  • 如何使用 Arm 模板获取应用服务中的主体 Id?

    您好 我正在编写 ARM 模板来部署我的应用程序服务 我想在我的手臂模板中创建系统标识 在应用程序服务臂模板部分中 我有以下代码 identity principalId reference variables identity resou
  • 在 Jersey Rest 中使用 @Consume 和 GET 请求

    我正在尝试将 GET 请求中的值绑定到 POJO 这些值是 HTTP GET 请求中的参数 我使用 JSONP 来传递参数 但看起来 JSONP 将 JSON 对象推到请求行上 因此它实际上并不是正在发送的 JSON 对象 而只是 URL
  • JavaFX Span Tableview 通过 MapEntries 合并单元格

    你好 我有以下地图 Map
  • 在 Android Oreo 及更高版本上根据 FCM 通知唤醒我的应用程序

    我的应用程序的一个重要部分是处理即时消息并接收 FCM 通知 应用程序如何在收到高重要性通知后唤醒几秒钟 从服务器进行短暂的提取并返回到之前的状态 我看过很多理论解释 但没有真正的源代码示例来实现这一点 有人可以帮忙吗 Extend Fir
  • 如何让键盘显示返回键?

    我想我已经尝试了所有组合 但我无法让字母键盘显示返回键 它始终是一个 完成 按钮 没有什么用处 在 Nexus 7 4 1 上 情况更糟 并显示一个愚蠢的笑脸按钮和 完成 按钮 这对我的应用程序没有任何意义 只要有返回按钮 就可以有 完成
  • 如何将欢迎页面设置为 struts 操作?

    我有一个基于 struts 的 web 应用程序 我希望默认的 欢迎 页面成为一个操作 我发现的唯一解决方案似乎是使欢迎页面成为包含操作重定向的 JSP 例如 在web xml
  • AsyncTask 真的在概念上存在缺陷还是我只是错过了一些东西?

    我已经研究这个问题几个月了 提出了不同的解决方案 但我对此并不满意 因为它们都是大规模的黑客攻击 我仍然不敢相信一个设计上有缺陷的类进入了框架并且没有人谈论它 所以我想我一定是错过了一些东西 问题在于AsyncTask 根据文档它 允许执行
  • Hadoop setInputPathFilter错误

    我正在使用 Hadoop 0 20 2 无法更改 并且我想向我的输入路径添加一个过滤器 数据如下 path1 test a1 path1 test a2 path1 train a1 path1 train a2 我只想处理所有文件trai
  • 对于来自 Vevo 的视频,Youtube IFrame API onError 触发,错误代码为 150

    让我解释一下我的情况 我想用YouTube IFrame API https developers google com youtube iframe api reference在我的网站上嵌入一些视频 我用id测试了视频wdGZBRAWW
  • 如何启动docker容器(ubuntu镜像)

    如何统计 Docker 容器 我是用它创建的 docker run d P v Users bsr usr local users name test ubuntu 我确实安装了虚拟盒来宾附加功能 并且安装工作正常 但是 我不知道为什么我不
  • 将业务层与数据层分离时对实体进行限制的位置

    我正在尝试为我的大型 ASP NET MVC 应用程序创建业务层和数据层 因为这是我第一次尝试这种规模的项目 所以我正在阅读一些书籍 并努力小心地将事物正确地分开 通常 我的应用程序混合了业务逻辑和数据访问层 并且多个业务实体在单个类中交织
  • Android 在 ScrollView 上 PullTo 刷新

    我知道类似 pullToRefresh 的功能在 iPhone 中可用 而对于 Android 我们必须手动管理它 我得到了一些使用 pullToRefresh 的示例 但它仅适用于 ListView 就我而言 我想实现滚动视图 Googl
  • 哪些浏览器支持console.log()?

    所有浏览器都支持这个吗 我想使用输出错误console log 但想知道是否所有浏览器都支持此功能 console log Error etc 不 并非所有浏览器都支持console log因为它不是标准的一部分 而是 DOM 的扩展 因此
  • 存储对字符串的引用

    我有一个具有 3 个字符串属性的类 我想将它们存储在一个列表中 以便当我更改列表的字符串时 它们也会在类中更新 如果我使用类对象 这很容易做到 但字符串似乎表现不同 它似乎为列表创建了对象的副本 而不是拥有指向该对象的指针 如果是 C 我该
  • 在 R 中使用 stringr 的具有非捕获组的正则表达式

    我正在尝试将非捕获组与str extract函数从stringr包裹 这是一个例子 library stringr txt lt foo str extract txt f o 这返回 foo 虽然我希望它只会返回 oo 就像在这篇文章中一