afr*_*ect 6 regex r gsub str-replace dplyr
我正在尝试修剪 R 字符串列表中的尾随方括号、内部引号和斜杠,最好使用dplyr.
样本数据:
df <- c("['Mamie Smith']", "[\"Screamin' Jay Hawkins\"]")
Run Code Online (Sandbox Code Playgroud)
预期结果:
"Mamie Smith", "Screamin' Jay Hawkins"
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
"Mamie Smith", "Screamin' Jay Hawkins"
Run Code Online (Sandbox Code Playgroud)
df %>%
str_replace("[[]]", "") # Also throws error
Run Code Online (Sandbox Code Playgroud)
另一个相对简单的正则表达式解决方案是:
data.frame(df) %>%
mutate(df = gsub("\\[\\W+|\\W+\\]", "", df))
df
1 Mamie Smith
2 Screamin' Jay Hawkins
Run Code Online (Sandbox Code Playgroud)
在这里,我们删除任何出现一次或多次的非字母数字字符 ( \\W+),条件是该字符之前是 OR ( |) ,后跟方括号。
或者,借用 @TaerJae 但大大简化了:
library(stringr)
data.frame(df) %>%
mutate(df = str_extract(df, '\\w.*\\w'))
Run Code Online (Sandbox Code Playgroud)
在这里,我们只关注\\w字符串两侧的字母数字字符 ( ),同时允许.*它们之间出现任何字符 ( ),从而捕获例如撇号Screamin'和空格。
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |