删除其他两个字符之间的所有字符(保留其他字符)

des*_*hen 5 regex r stringr

我知道这个问题已经以不同的方式被问过多次,但我找不到一个解决方案,可以在保留边框的同时替换一些“边框”之间的文本。

input <- "this is my 'example'"
change <- "test"
Run Code Online (Sandbox Code Playgroud)

现在我想用 中的值替换单引号之间的所有内容change

预期输出为"this is my 'test'

我尝试了不同的变体:

stringr::str_replace(input, "['].*", change)
Run Code Online (Sandbox Code Playgroud)

但这不起作用。例如上面给出的是"this is my test",所以它不再有单引号。

有任何想法吗?

小智 3

还有这边呢?

\n
input <- "this is my \'example\'"\nchange <- "test"\n\nstringr::str_replace(input, "(?<=\').*?(?=\')", change)\n
Run Code Online (Sandbox Code Playgroud)\n

(?<=\') \xe2\x86\x90 看看前面的字符是一个\'而没有捕获它。
\n \xe2\x86\x90 捕获任何字符,但尽可能少。为了隐藏像“这是我的\'示例\'你看到\'它\'吗”这样的情况
\n (?=\') \xe2\x86\x90 看起来后面的字符是\'而不捕获它。

\n

\xe2\x86\x93 在这里测试 \xe2\x86\x93

\n

伊迪奥内

\n