R 中的 Grep 查找具有自定义“扩展”边界的单词

2024-02-29

我正在寻找一个正则表达式来 grep 整个单词,包括用数字或下划线分隔的单词。\\b将数字和下划线视为单词的一部分,而不是边界。

例如,我想在“DOG MOUSE CAT”、“DOG MOUSE:CAT”中以及“DOG_MOUSE9CAT”中以及表达式的末尾或开头处捕获 MOUSE,如“MOUSE9CAT”和“DOG_MOUSE”中。基本上,我正在寻找的边界是任何非大写字母字符加上行/表达式的开头和结尾(可能缺少由\\b here).

我试过了:

"[[0-9_]\\b]MOUSE[[0-9_]\\b]"
"[[0-9_]|\\b]MOUSE[[0-9_]|\\b]"
"[$|[^A-Z]]MOUSE[^|[^A-Z]]"
"[?<=^|[^A-Z]]MOUSE[?=$|[^A-Z]]"

它们都不起作用。

我实际上正在寻找几个单词(基于长值向量),所以最终结果应该类似于

grep(paste("\\b", paste(searchwords, collapse = "\\b|\\b"), "\\b"), targettext)

(使用不同的分隔符,因为\\b对我来说限制太大了)。

(这与用户 Nick Sabbe 在评论中提出的问题类似:在 R 中使用 grep 查找作为整个单词的字符串(但不查找作为单词一部分的字符串) https://stackoverflow.com/questions/7227976/using-grep-in-r-to-find-strings-as-whole-words-but-not-strings-as-part-of-words)


将 PCRE 正则表达式与环视结合使用:

grep("(?<![A-Z])MOUSE(?![A-Z])", targettext, perl=TRUE)

See the 正则表达式演示 http://(?%3C!%5BA-Z%5D)MOUSE(?!%5BA-Z%5D)

The (?<![A-Z])如果单词前面有大写 ASCII 字母和负向前视,则负向后视将使匹配失败(?![A-Z])如果该单词后跟大写 ASCII 字母,则匹配失败。

要将环视应用于您拥有的所有替代方案,请使用外部分组(?:...|...).

See the R在线演示 https://ideone.com/cdOUse:

> targettext <- c("DOG MOUSE CAT","DOG MOUSE:CAT","DOG_MOUSE9CAT","MOUSE9CAT","DOG_MOUSE")
> searchwords <- c("MOUSE","FROG")
> grep(paste0("(?<![A-Z])(?:", paste(searchwords, collapse = "|"), ")(?![A-Z])"), targettext, perl=TRUE)
[1] 1 2 3 4 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中的 Grep 查找具有自定义“扩展”边界的单词 的相关文章

  • kableExtra 中的 row_spec() 函数不会在 html 输出中创建水平线

    我想在 kableextra 表中的某一行下方添加一条水平线 row spec 函数的参数 hline after 应该在行下方添加水平线 row spec 文档 https www rdocumentation org packages
  • 使用 broom 和 tidyverse 总结 r 平方游戏

    我发布了一个问题here https stackoverflow com questions 48627287 getting adjusted r squared value for each line in a geom smooth
  • 在 R 中创建一个运行计数变量?

    我有一个足球比赛结果的数据集 我希望通过创建一组类似于世界足球 Elo 公式的运行评级来学习 R 我遇到了麻烦 在 Excel 中看似简单的事情在 R 中并不完全直观 例如 4270 个观察中的前 15 个具有必要的变量 date t 1
  • 使用正则表达式如何从十进制数中删除尾随零

    我需要编写一些正则表达式 它接受一个数字并删除小数点后的所有尾随零 语言是 Actionscript 3 所以我想写 var result String theStringOfTheNumber replace the regex 例如 3
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 我可以缩短这个正则表达式吗?

    我需要检查字符串是否符合特定的 ID 格式 ID的格式如下 aBcDe fghIj KLmno pQRsT uVWxy 由五个大写或小写字母组成的五个块的序列 由一个破折号分隔 我有以下有效的正则表达式 string idFormat a
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • 正则表达式匹配整个单词[重复]

    这个问题在这里已经有答案了 我在 stackoverflow 上看到了很多关于使用正则表达式进行全词匹配的例子 我有以下情况 我想用 www xyz com 替换 www abc com string RetVal I am going t
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • API 请求和curl::curl_fetch_memory(url, handle = handle) 中的错误:SSL 证书问题:证书已过期

    几天前 我运行了代码几个月 没有任何问题 GET url myurl query 今天我遇到一个错误 Error in curl curl fetch memory url handle handle SSL certificate pro
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 检查给定字符串是否等于给定字符串集中的至少一个字符串的有效方法

    给定一组字符串 比如说 String1 String2 StringN C 中确定最有效的方法是什么 返回true or false 是否给定string s匹配上面集合中的任何字符串吗 Boost Regex 可以用于此任务吗 std u
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • 使用 sed 删除大括号对之间的所有内容

    我有一个看起来像这样的字符串 B F blue master F red f k b f k b K black B F green 我想删除匹配的子字符串 它可能包含也可能不包含相同顺序的其他子字符串 我应该得到 master 作为最终输
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use

随机推荐

  • 什么是 DataGridView.Rows.Clear()?

    我每隔一定时间就会以编程方式在 datagridview 中添加一些行 我想在datagridview中查看某些github存储库的状态 例如是否在线 特定时间存储库中有多少提交等 因此 当超时时 我使用 DataGridView Rows
  • Pyomo:使用 if 语句进行约束

    我目前正在努力解决这个问题 我需要最大化这家公司的利润 这就是我目前拥有的代码 from pyomo environ import from pyomo opt import opt solvers SolverFactory ipopt
  • 使用 Google 的 C++ Native Client 的 HTTP POST 请求

    如何使用 Google 的 C Native Client 执行 HTTP POST 请求 这个问题很久以前就被问过 但以防万一其他人也想知道同样的事情 您可以使用pp URLRequestInfo SetMethod https deve
  • 流行 Android 手机支持的相机预览尺寸

    我正在使用相机预览帧 并且需要决定我将使用的最小预览尺寸 我需要相当高的分辨率 并且正在尝试找出我可以在更流行的 Android 手机和操作系统版本上获得的最高预览分辨率 根据判断关于 Nexus One Froyo 预览尺寸的问题 htt
  • 使用显式与隐式意图启动 Android 服务

    根据标准 Android 文档 启动服务 即启动服务 的首选方法是使用如下所示的显式意图 Using explicit intent Intent serviceIntent new Intent getApplicationContext
  • 如何将 package.json 版本写入我的 WebPack 捆绑包?

    我的 package json 文件包含我的模块的版本 该版本最终被编译到我包含在我的 Web 项目中的 app bundle js 文件中 我真的很想将 package json 文件中的版本号写入 app bundle js 文件 作为
  • 按创建日期对 glob() 进行排序 [重复]

    这个问题在这里已经有答案了 我在用 foreach glob config pages php as page 获取目录中所有文件的列表config pages 我可以先显示最旧的文件 最后显示最新的文件吗 我想用所有这些制作一个导航菜单
  • 发送聊天消息

    我有这个代码 var msg new ChatMessage msg Body Test msg Recipients Add number var cms await ChatMessageManager RequestStoreAsyn
  • 使用基类作为 WCF 服务的参数

    我有一个多项目解决方案 一个项目提供一个包含多个类的 DLL 其中一门课是WorkerTemplate 另外两个类继承自它 即ExecSQLWorker and CopyWorker class ExecSQLWorker WorkerTe
  • 无服务器:在 ubuntu 16.04 中找不到命令

    我正在尝试在 Ubuntu 16 04 LTS 中设置 AWS Serverless 框架 我安装了 Node js 并且还使用以下命令安装了 Serverless npm install g serverless在终端中 但当我尝试跑步时
  • PowerShell ForEach / 管道混乱

    我正在 PowerShell 中使用 TFS PowerTools Cmdlet 尝试从我的服务器获取有关变更集和相关工作项的一些信息 我已将问题归结为我不理解的行为 我希望它不是 TFS 特定的 所以那里的人可能能够向我解释问题 这是我可
  • C# 中的内部类

    直到最近我才知道普通类和内部类 子类之间有区别 内部类的实例与其包含类的实例之间有什么关系 内部类的目的是什么以及它们有何不同 与 Java 不同 C 包含的类是嵌套的 包含类实例和被包含类实例之间没有关系 包含类仅在 C 中用于控制包含类
  • 使用 Jackson 根据 API 版本指定不同的 JSON 属性名称

    我需要能够使用 Jackson 序列化 反序列化对象同时支持多个 API 版本 我探索过以下解决方案 JsonProperty 属性命名策略 混合注解 然而 每一个都会导致自己的问题 如果我可以直接在注释中添加具有正确名称的多个版本 Jso
  • 编译/链接过程如何进行?

    编译和链接过程如何进行 Note This is meant to be an entry to Stack Overflow s C FAQ https stackoverflow com questions tagged c faq I
  • JCombobox箭头消失

    当在未放置在构造函数中的方法中填充组合框时 组合框的箭头消失 我尝试使用invokeLater方法 但它不起作用 private void fillProduct this VALID FOR PRODUCT removeAllItems
  • 内联块元素似乎毫无理由地断行?

    我有一些非常基本的 HTML CSS 但没有按我的预期工作 基本上我的身体设置为 400 像素宽 然后 我在 body 内有两个 div 其显式宽度分别为 300px 和 100px 此外 这两个 div 都设置为display inlin
  • 如何用SDL 2.0画正方形?

    我想做一些简单的事情 比如使用 C 和 SDL 在屏幕上画一个正方形 我复制的例子不起作用 Get window surface SDL Surface screenSurface SDL GetWindowSurface window F
  • 使用 Scikit learn 时出现 ValueError。模型的特征数量与输入的特征数量不匹配

    我正在使用 RandomForestClassifier 解决分类问题 在代码中 我将数据集拆分为训练数据和测试数据以进行预测 这是代码 from sklearn ensemble import RandomForestClassifier
  • 我们如何在sql server中选择前20%和后80%的记录

    我正在尝试选择表中前 20 的排序结果以及剩余的 后 80 结果 当我做 select top 20 percent from table 1 然后 select top 80 percent from table 1 order by d
  • R 中的 Grep 查找具有自定义“扩展”边界的单词

    我正在寻找一个正则表达式来 grep 整个单词 包括用数字或下划线分隔的单词 b将数字和下划线视为单词的一部分 而不是边界 例如 我想在 DOG MOUSE CAT DOG MOUSE CAT 中以及 DOG MOUSE9CAT 中以及表达