在字符串

时间:2017-01-31 11:32:17

标签: r

我想在特殊字符“(”和特殊字符之后“)之前在字符串中添加一些字符”“

“(”和“)”的位置从一个字符串更改为下一个字符串。

如果有帮助,我尝试了几种方法,但我不知道如何将它拼凑起来。

a <- "a(b"
grepl("[[:punct:]]",  a) #special character exists
x <- "[[:punct:]]" 
image <- str_extract(a, x) #extract special character
image

e.g。

"I want to go out (i.e. now). "

结果看起来像:

"I want to go out again (i.e. now) thanks."

我想在句子中添加“再次”和“谢谢”。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

使用str_replace

 library(stringr)
 str_replace("I want to go out (i.e. now).", "\\(", "again (") %>%
   str_replace("\\)", ") thanks")

答案 1 :(得分:2)

我们可以使用sub。匹配括号内的字符(包括括号),将其捕获为一个组,然后我们将其替换为再次添加&#39;然后是被捕组(\\1)的反向引用,然后是“谢谢”

sub("(\\([^)]+\\))\\..*", "again \\1 thanks.", str1)
#[1] "I want to go out again (i.e. now) thanks."

或使用两个捕获组

sub("(\\([^)]+\\))(.*)\\s+", "again \\1 thanks\\2", str1)
#[1] "I want to go out again (i.e. now) thanks."

数据

str1 <- "I want to go out (i.e. now). "

注意:仅使用base R