我可以用一个表达式引用多个正则表达式项吗?

时间:2019-04-18 00:48:48

标签: r regex

我正在使用R,并且正在尝试清理字符串。

 string <- '{\n  \"bigint\": \"aaa6d928-aaaa-3333-5555-8598e3c78d7a\"\n}'
 a <- str_remove_all(string, '"')
 b <- str_remove_all(a, "\\{") 
 c <- str_remove_all(b, "\\}") 
 d <- str_remove_all(c, "\\n")  
 e <- str_remove_all(d, "\\s+")

我想将它们放在一个str_remove_all语句中。我曾尝试将('"' | \\{)['"'] | [\\{]这样的过滤器链接在一起,但都不起作用。

如何引用同一字符串的不同部分?

1 个答案:

答案 0 :(得分:2)

我们可以将其放在方括号内

library(stringr)
str_remove_all(string, '["{}\n ]+')
#[1] "bigint:aaa6d928-aaaa-3333-5555-8598e3c78d7a"

或使用gsub中的base R

gsub('["{}\n ]+', "", string)
#[1] "bigint:aaa6d928-aaaa-3333-5555-8598e3c78d7a"

类似于

e
#[1] "bigint:aaa6d928-aaaa-3333-5555-8598e3c78d7a"