regex - 在 R 中使用 strsplit(),忽略括号中的任何内容

标签 regex r strsplit

我正在尝试使用 strsplit()在 R 中基于逗号将字符串分成几部分,但我不想在括号中拆分任何内容。我认为答案是一个正则表达式,但我正在努力使代码正确。

例如:

x <- "This is it, isn't it (well, yes)"
> strsplit(x, ", ")
[[1]]
[1] "This is it"     "isn't it (well" "yes)" 

当我想要的是:
[1] "This is it"     "isn't it (well, yes)"

最佳答案

我们可以使用 PCRE正则表达式为 FAIL任何 ,接下来是 (之前)并由 , 拆分后跟 0 个或多个空格( \\s* )

 strsplit(x, '\\([^)]+,(*SKIP)(*FAIL)|,\\s*', perl=TRUE)[[1]]
 #[1] "This is it"           "isn't it (well, yes)"

关于regex - 在 R 中使用 strsplit(),忽略括号中的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347537/

相关文章:

通过搜索列名重命名数据框的列

r - 如何使用 sf::st_centroid 计算多边形的质心?

R:根据另一列中的值从一列中的拆分字符串中检索数据

逐行合并 `data.table` 中的逗号分隔值

Javascript String.replace 动态正则表达式?

c++ - 从输入中导出最小的正则表达式

r - 更改矩阵/数据框中的行顺序

r - strsplit 返回添加了反斜杠和引号的嵌套列表\"

Java 正则表达式未编译

javascript - 具有特定扩展名的电子邮件验证?