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

时间:2011-10-02 15:11:54

标签: r nlp

我有一个语料库: txt =“微电子图案中的图案化层”。 我想用“表单”完全替换术语“模式”,我尝试编写代码:

txt_replaced = gsub("pattern","form",txt)

然而,txt_replaced中的响应语料库是: “微电子形式的形成层。”

正如你所看到的,“图案化”一词被“形成”错误地取代,因为“图案”中的部分特征与“图案”相匹配。

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

我渴望得到回应如下: “微电子形式的图案化层。”

非常感谢!

1 个答案:

答案 0 :(得分:27)

正如@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."

或者,您可以使用\b代替\<\>\b匹配字边界,因此可以在两端使用&gt;

txt_replaced <- gsub("\\bpattern\\b","form",txt)

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