如何使用gsub()完全替换字符串

ssu*_*han 10 nlp r

我有一个语料库:txt ="微电子模式中的图案层".我想用"form"替换术语"pattern",我尝试编写代码:

txt_replaced = gsub("pattern","form",txt)
Run Code Online (Sandbox Code Playgroud)

然而,txt_replaced中的响应语料库是:"微电子形式内的形成层".

正如您所看到的,术语"图案化"被"形成"错误地取代,因为"图案化"中的特征部分与"图案"匹配.

我想查询一下,如果我可以使用gsub()完全替换字符串?也就是说,只应替换完全匹配的术语.

我渴望得到如下回应:"微电子形式的图案层."

非常感谢!

Tom*_*mmy 28

正如@koshke所指出的那样,一个非常类似的问题已经得到了回答(由我).......但是那grep就是gsub,所以我会再次回答:

"\ <"是单词开头的转义序列,">"是结尾.在R字符串中,您需要加倍反斜杠,因此:

txt <- "a patterned layer within a microelectronic pattern."
txt_replaced <- gsub("\\<pattern\\>","form",txt)
txt_replaced
# [1] "a patterned layer within a microelectronic form."
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用\b而不是\<\>.\b匹配一个单词边界,以便它可以在两端使用>

txt_replaced <- gsub("\\bpattern\\b","form",txt)
Run Code Online (Sandbox Code Playgroud)

另请注意,如果您只想替换一次,则应使用sub而不是gsub.