r - 为字符串向量获取每个字符串的多个匹配项
问题描述
我有一些如下所示的文本:
P17-Nationalist Revolutionary Movement-Free Bolivia Movement (Movimiento Nacionalista Revolucionario [MNR] - Movimiento Bolivia Libre [MBL] [MNR-MBL])
P18-Socialist Party (Partido Socialista [PS])
P19-Liberty and Justice (Libertad y Justicia [LJ])
All_Election_Parties <- readr::read_lines("All_Election_Parties.txt")
代码:str_match_all(entry, "(?<=\\[).+?(?=\\])")
创建一个匹配列表。
[1] [MBL]
[2] [MNR-MBL]
[3] [PS]
[4] [LJ]
然而,我想要的是它创建一个列表/列/向量,其中包含每个字符串的所有匹配项的向量/列表。像这样的东西:
[1] [MBL] [MNR-MBL]
[2] [PS]
[3] [LJ]
我怎么做?
解决方案
您自己的解决方案str_match_all(entry, "(?<=\\[).+?(?=\\])")
会创建一个矩阵列表。在每个列表中简单地drop
ing 应该会产生您想要的结果:
entry <- c("P17-Nationalist Revolutionary Movement-Free Bolivia Movement (Movimiento Nacionalista Revolucionario [MNR] - Movimiento Bolivia Libre [MBL] [MNR-MBL])",
"P18-Socialist Party (Partido Socialista [PS])",
"P19-Liberty and Justice (Libertad y Justicia [LJ])")
library(stringr)
library(purrr)
str_match_all(entry, "(?<=\\[).+?(?=\\])") %>% map(drop)
#> [[1]]
#> [1] "MNR" "MBL" "MNR-MBL"
#>
#> [[2]]
#> [1] "PS"
#>
#> [[3]]
#> [1] "LJ"
由reprex 包(v0.3.0)于 2019 年 11 月 23 日创建
推荐阅读
- java - 如何在 Clojure 中将 Java 类实例转换为 Object[]
- javascript - JS 不会链接到 HTML 按钮
- stm32 - 如何将 I-CUBE-LRWAN 库添加到新项目?
- c - 如何从 Swift 中调用名称与结构一致的 C 函数?
- node.js - npx foo –“找不到命令:foo”
- python - 如何强制 Python 附加到某人当前打开的 csv 文件?
- java - 如何从 OpenJDK 8 中提取和安装 Java 8 202 JRE
- html - 为什么不显示正确的行数
- c# - 未能创建迁移。EF Core 工具比某些版本旧
- html - CoreUI 侧边菜单浮动在主菜单上