R Strsplit 将分隔符保留在第二个元素中

2024-06-23

我已经尝试解决这个小问题近2个小时了,但没有成功。我只想用分隔符分隔字符串:一个空格后跟任何字符。在第二个元素中,我想保留分隔符,而在第一个元素中,它不应出现。例子:

 x <- "123123 123 A123"
 strsplit(x," [A-Z]")

结果是:

"123123 123" "A123"

但是,这不会将字母 A 保留在第二个元素中。 我尝试过使用

strsplit(x,"(?<=[A-Z])",perl=T)

但这并不能真正解决我的问题。如果第二个元素中有空格,也没关系,只需要其中的字符即可。


如果你想遵循你的方法,你需要匹配 1+ 空格followed(即,您需要先行查看)用字母来消耗空格:

> strsplit(x,"\\s+(?=[A-Z])",perl=T)
[[1]]
[1] "123123 123" "A123"

See the PCRE 正则表达式演示 https://regex101.com/r/Lq1cG9/1.

Details:

  • \s+- 1 个或多个空格(放入匹配值中,因此在分割期间将被删除)
  • (?=[A-Z])- 大写 ASCII 字母必须立即出现在当前位置的右侧,否则匹配失败(该字母不是匹配值的一部分,并将保留在结果中)

您还可以匹配最后一个非空白字符,后跟 1 个以上空白并使用\K匹配重置运算符丢弃空格之前的匹配:

> strsplit(x,"^.*\\S\\K\\s+",perl=T)
[[1]]
[1] "123123 123" "A123"  

如果字符串包含换行符,请添加 DOTALL 标志,因为默认情况下 PCRE 正则表达式中的点与换行符不匹配:"(?s)^.*\\S\\K\\s+".

Details:

  • ^- 字符串的开头
  • .*- 任何 0+ 个字符,直到最后一次出现后续子模式(即\S\s+)
  • \\S- 非空白
  • \\K- 在这里,删除迄今为止匹配的所有文本
  • \\s+- 1 个或多个空格。

See 另一个 PCRE 正则表达式演示 https://regex101.com/r/Lq1cG9/2.

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

R Strsplit 将分隔符保留在第二个元素中 的相关文章

  • 正则表达式删除文件扩展名

    我需要一个可以删除文件名扩展名的正则表达式 仅返回文件名 以下是一些输入和输出的示例 myfile png gt myfile myfile png jpg gt myfile png 显然我可以手动执行此操作 即删除最后一个点中的所有内容
  • 正则表达式“只分组,不捕获”似乎不起作用

    x abcdefg x x match ab cd ef x 不应该是 abef 吗 不是 它实际上是 abcdef 为什么我的 没有任何效果 当然我的理解很可能是错误的 still matches 它只是不会出于以下目的创建新组 1 1
  • 更改分配新变量的默认环境

    我经常想在全局环境下的一个环境中创建很多变量 这可以通过以下方式轻松完成envir论证sys source 如果由正在获取的文件创建的所有变量都应该进入单个环境 但我通常使用创建变量集的文件 一组应该进入一个环境 另一组应该进入另一个环境
  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d
  • 使用 cmd 和 R 配置 databricks

    我正在尝试使用 databricks cli 并调用 databricks 配置 这就是我从 cmd 执行此操作的方法 somepath gt databricks configure token Databricks Host shoul
  • 排除以特定字符开头的正则表达式匹配

    我有以下内容 Regex urlRx new Regex https ftp file www A Za z0 9 A Za z0 9 RegexOptions IgnoreCase 这匹配所有 URL 但我想排除那些以字符开头的 URL
  • R 绘制一些 unicode 字符,但不绘制其他字符

    我们的系统管理员刚刚将我们的操作系统升级到 SLES12SP1 我重新安装了 Rv3 2 3 并尝试绘图 我用cairo pdf并尝试绘制 x 标签为的图 u0298即太阳能符号 但它不起作用 标签只是空白 例如 cairo pdf Rpl
  • 如何在闪亮的应用程序中初始化渲染项目的默认值

    介绍 In a shinyApp 我想用动态输入渲染输出 我的问题是 使用shinydashboard使用不同的选项卡 默认值来自 Input 仅当激活相应选项卡时才会呈现 想想输入和输出选项卡 当使用时我得到同样的行为switch声明in
  • 如何根据子字符串匹配选择 R data.table 行(类似于 SQL)

    我有一个带有字符列的 data table 并且只想选择其中包含子字符串的行 相当于SQLWHERE x LIKE substring E g gt Months data table Name month name Number 1 12
  • igraph - 将文本添加到社区图

    使用下面的代码 我可以在 igraph 提供的 空手道俱乐部 示例中生成社区图 请参见第一张图片 library igraph karate lt make graph Zachary wc lt cluster walktrap kara
  • Android正则表达式-返回匹配的字符串

    在我的 Android 项目中 我有一个正则表达式和一个字符串 其中应该有匹配的表达式 问题是我只找到了一个matches 方法 返回布尔值 有没有什么东西 只返回匹配的字符串 例如 如果我的字符串是 中午 12 点去商店 我想检查该字符串
  • 可以使用带有
     的 CodeIgniter 输出压缩来显示代码块吗?				
    			

    是否可以排除 pre 来自此代码点火器压缩挂钩的标签 我不太了解正则表达式 因此不会破坏我的页面 我试过了 但它总是会提高输出 EDIT 此 CodeIgniter 压缩挂钩会去除代码中所有未指定的空格和格式 以压缩输出 包括 pre 依赖
  • gitk中正则表达式的格式是什么?

    我正在尝试使用 gitk 中的 find 添加 删除字符串 正则表达式选项 我尝试过的语法不起作用 并且我找不到描述它接受的正则表达式语法的文档 我正在尝试匹配两者Modem Wakup and Modem UnWakeup 两者都不Mod
  • Sql Server Management Studio 的完整正则表达式语法

    是否有 Sql Server Management Studio 中使用的正则表达式语法的完整描述 例如 必须有一种方法可以进行负向查找 但查找 替换对话框没有列出 SSMS 版本 2005 2012 实际上只是修改 自定义的 Visual
  • 带有 selectInputs 的 DT 数据表在选择后重置回左侧

    我在 Shiny 应用程序的 DT 数据表的列中使用 selectInputs 感谢一些帮助here https stackoverflow com questions 74620665 vertically center selectin
  • 正则表达式搜索单个 0 并添加逗号

    我有以下所有数字数据 4245 4 0 0242 4424 09 0 422404 5955 0 2234234 234 224 0 2423 234 0 我需要单独处理每一行 我需要删除所有单个 0 并使用逗号输出如下 4245 4 02
  • R 矩阵到犰狳的转换非常慢

    观察 对于中等大小的矩阵 将矩阵从 R 传递到 C 的开销要慢得多arma mat类型比NumericMatrix类型 大约需要 250 倍的时间 这是一个最小的例子 include
  • 使用同一变量的多个子集创建新数据框

    我想创建一个新的数据框 其中的列是由不同变量分割的同一变量的子集 例如 我想创建一个新的变量子集 b 其中列由不同变量 year 的子集分割 set seed 88 df lt data frame year rep 1996 1998 3
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • VBA 6:正则表达式无法识别复杂的字符串

    我有这个字符串 1X214X942 0SX 其中每个 X 代表一个 不间断空格 准确地说是空白 ASCII 代码为 160 S 代表一个空格字符 我试图用这个正则表达式来识别它 d 1 3 s d 3 s d 3 d 1 3 d 1 3 d

随机推荐

  • 在 Highcharts 中对堆叠条形图进行分组

    我遇到的情况是 我需要将某些条形 列分组为逻辑分组以满足业务需求 我不在乎它是堆积条还是堆积柱 但我需要将某些堆栈分组在一起 各个堆栈仍然需要标记 Highcharts 是我当前的目标 但如果无法实现 我将考虑另一个库的想法 我对通过 pl
  • 在 Visual Studio Code 终端中打开 CMD

    每当我在 Visual Studio Code 中打开终端时 我都会得到一个 bash shell 我想添加 CMD 作为第二个 shell 为此 我浏览了 VS Code 文档并找到了以下命令 CTRL SHIFT 但它只打开第二个 ba
  • 如何在GDB中访问std::tr1::shared_ptr的目标

    如何访问 GDB 中 std tr1 shared ptr 的目标 这不起作用 gdb p sharedPtr gt variableOfTarget 如果我尝试使用指针对象本身 p sharedPtr 我得到这样的东西 1 std tr1
  • 模型视图演示者 - 被动视图 - 谁加载模型?

    我很好奇使用 MVP 模式来提高可测试性 我有 MVC 经验 但 MVP 似乎有所不同 我有一个在 项目 文件上运行的应用程序 该文件实际上是多个文件和文件夹的压缩存档 这个项目应该是我的模型 我将把加载模型的代码放在哪里 我还在考虑另一个
  • Linux内核如何阻止BIOS系统调用?

    BIOS 调用在 Linux 操作系统中不可用 我想知道内核如何阻止执行包含对 BIOS 子例程的调用的指令 The BIOS http en wikipedia org wiki Basic Input Output System主要在
  • 如何通过传递命名函数为 unordered_set 显式指定自定义哈希函数?

    根据已接受的答案这个问题 https stackoverflow com questions 8157937 how to specialize stdhashkeyoperator for user defined type in uno
  • 如何使用 dart json_serialized 包序列化 GeoPoint

    我正在尝试使用以下包按距离过滤我的 Firestore 集合 https github com fluttercommunity firestore helpers https github com fluttercommunity fir
  • 如何使用反射将新项目添加到集合中

    我试图使用反射将未知对象添加到未知集合类型中 当我实际执行 添加 时 我遇到了异常 我想知道是否有人可以指出我做错了什么或有替代方案 我的基本方法是迭代通过反射检索的 IEnumerable 然后将新项目添加到辅助集合中 稍后我可以将其用作
  • 定义颜色属性的多个类的优先级按声明顺序而不是规范顺序设置

    给定定义颜色属性的两个具有相同特异性的类 我认为元素类属性中列出的最后一个类将优先 From http htmlhelp com reference css struct html http htmlhelp com reference c
  • 如何导入位于pycharm项目中同一子目录中的python文件

    我在pycharm中调试和运行时出现输入错误 我的项目结构已正确扎根 etc HW3 以便HW3是根目录 我在 HW3 中有一个子文件夹 util 和一个文件 util util py 我还有另一个文件util called run tes
  • 自定义警报对话框 android

    我正在 android 中使用自定义警报对话框 我已遵循link 1 https stackoverflow com questions 9467026 change dialog position on the screen and li
  • 使用 GHC.Generics 恢复类型定义

    昨天我尝试回答这个问题是关于数据类型的表示 https stackoverflow com questions 22715572 a serializable representation of a data type for client
  • 使用 ngFor 函数时,Angular Material matToolTip 不显示

    我有一组称为报告的数据 其中包含一组网络 report networks 在返回网络数组之前 我有 model ts 来操作它 我做了一个 ngFor 来迭代网络数据以显示工作正常的详细信息 但是 在 ngFor 中添加 matToolTi
  • 如何在旋转后撤回不可见的 UICollectionViewCell 以便重用时做好准备?

    如何在重用发生时撤回不可见的 UICollectionViewCell 准备 我想到的一种方法是根据布局单元格的prepareForReuse函数中的代码 但是虽然它有效 但它不是最佳的 因为它会导致比所需的更多的重新绘制 背景 需要触发d
  • 如何删除 Kable 表标题和实际表之间的白色/空白区域

    我正在使用 kable 制作下表 但我似乎无法摆脱表格标题和实际表格之间的空白 具体来说 我正在使用投影仪演示输出进行此 rmarkdown dist class party lt table dat3 class2 dat3 party2
  • 如何使用 Boost.Test 指定预期会出现异常?

    我有一个 Boost 单元测试用例 它会导致被测对象抛出异常 这就是测试 导致异常 我如何在测试中指定预期特定的异常 我可以使用 BOOST AUTO TEST CASE EXPECTED FAILURES 指定测试应该有一定数量的失败 但
  • 如何从 pl sql 过程运行 sql 脚本

    我有一个类似的程序 CREATE OR REPLACE PROCEDURE test is BEGIN DBMS OUTPUT PUT LINE This is a Test END 我想运行一些存储在当前目录中的sql脚本 我可以使用 s
  • 在 R 的 data.table 中选择 NA

    如何选择数据表中主键缺少值的所有行 DT data table x rep c a b NA each 3 y c 1 3 6 v 1 9 setkey DT x 选择特定值很容易 DT a 选择缺失值似乎需要向量搜索 不能使用二分查找 我
  • Clojure 宏:解析变量

    我似乎很了解 Clojure 中的宏 我可能缺少一些基本的东西 首先 请允许我描述一个我想要的例子 defmacro macrotest v d def a b c macroexpand 1 macrotest a gt d b c 换句
  • R Strsplit 将分隔符保留在第二个元素中

    我已经尝试解决这个小问题近2个小时了 但没有成功 我只想用分隔符分隔字符串 一个空格后跟任何字符 在第二个元素中 我想保留分隔符 而在第一个元素中 它不应出现 例子 x lt 123123 123 A123 strsplit x A Z 结