r - 在R中提取文本字符串
问题描述
我有一个这样的专栏:
> PREFI.(S): NETWORK SA|ADV.(A/S):JOHN SMITH SANT'ANNA (30652/RS) AND OTHER(A/S)|RECDO.(A/S): CLAUDIA TRROMMER|ADV.(A/S): LOUISE (52417/RS)
> PREFI.(S): RUTH SEIXAS|ADV.(A/S): LOPES SOUTO (47706/RS)|RECDO.(A/S): MARTINS (64285/RS)
我想:1)用|分隔的拆分值 2)仅获取“)”或“:”和非字母字符/行尾之间的文本
结果将是:
NETWORK SA
JOHN SMITH
AND OTHER
CLAUDIA TRROMMER
LOUISE RUTH
ETC
我想我已经成功完成了第一部分
docs <- str_split(processos$partes,"\\|")
但我无法弄清楚最后一部分 - 即使在尝试使用正则表达式lookbehind/ahead之后
解决方案
使用tidyverse和stringr函数的解决方案:
> library(tidyverse)
> x <- "
+ > PREFI.(S): NETWORK SA|ADV.(A/S):JOHN SMITH SANT'ANNA (30652/RS) AND OTHER(A/S)|RECDO.(A/S): CLAUDIA TRROMMER|ADV.(A/S): LOUISE (52417/RS) ..." ... [TRUNCATED]
> # split on "|"
> xs <- str_split(x, "\\|")[[1]]
> # extract the data
> str_extract_all(xs, "\\):[ a-zA-Z]*") %>%
+ unlist() %>%
+ sub("^..", "", .) # get rid of "):"
[1] " NETWORK SA" "JOHN SMITH SANT" " CLAUDIA TRROMMER"
[4] " LOUISE " " RUTH SEIXAS" " LOPES SOUTO "
[7] " MARTINS "
推荐阅读
- javascript - 是否可以生成将在文件名中使用的浏览器名称?
- python-3.x - 如何在 Python 3 中将播放列表作为 XML 文件打开为 dict.?
- html - 尝试在 iOS 中解析 html 表
- android - Dagger2,ViewModelProvider.Factory:
使用多个 @MapKey 注释类型 - ruby-on-rails - 什么整数数据类型的范围大于 Rails 中的整数?
- javascript - Node.js - 错误:找不到模块'./router'
- angular - Chart js 不适用于 Angular 7 项目
- node.js - react native cli和react working的Monorepo - 模块中不存在haste模块| YarnWorkspace
- json - 使用 sub() 函数有条件地更改 jq 中的 JSON 值
- android - 操作栏项目显示在 NavigationView 中并且无法从操作栏中隐藏 3 个点