我有一个语料库:
txt =“微电子图案中的图案层。”
我想用“形式”完全替换术语“模式”,我尝试编写一个代码:
txt_replaced = gsub("pattern","form",txt)
但是,txt_replaced 中的响应语料库是:
“在微电子形式中形成的层。”
如您所见,术语“patterned”被错误地替换为“formed”,因为“patterned”中的部分特征与“pattern”匹配。
我想查询是否可以使用 gsub() 完全替换字符串?
也就是说,只有完全匹配的术语才应该被替换。
我渴望得到如下回应:
“微电子形式中的图案层。”
非常感谢!
最佳答案
正如@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
匹配一个词边界,所以它可以在两端使用>txt_replaced <- gsub("\\bpattern\\b","form",txt)
另请注意,如果您只想替换一次,您应该使用
sub
而不是 gsub
.
关于r - 如何使用 gsub() 准确替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7627170/