R 为什么sub()和gsub()具有相同的结果? x
当您使用模式R 为什么sub()和gsub()具有相同的结果? x,r,gsub,R,Gsub,当您使用模式“*”是“”,它匹配从字符串开始到最后一个“是”,第一句是“轴”中的,第二个字符串中的“列出”中的“是”。因此,直到该部分的所有内容都将替换为“XY” 您可能期望的是: x <- c("This is a sentence about axis", "A second pattern is also listed here") sub(".*is", "XY", x) #[1] "XY" "XYted here" gsub(".*is", "XY"
“*”是“
”,它匹配从字符串开始到最后一个“是”
,第一句是“轴”
中的,第二个字符串中的“列出”
中的“是”
。因此,直到该部分的所有内容都将替换为“XY”
您可能期望的是:
x <- c("This is a sentence about axis",
"A second pattern is also listed here")
sub(".*is", "XY", x)
#[1] "XY" "XYted here"
gsub(".*is", "XY", x)
#[1] "XY" "XYted here"
如您所见,在子调用中,仅第一个“is”
被替换,而在gsub
中,“is”
的所有实例都被替换为“XY”
如果您在R中调用?sub
,在其给出的描述中,sub
和gsub
分别执行第一个匹配项和所有匹配项的替换。因为*is
匹配到最后一次出现的is
非常感谢您花时间帮助我!
sub("is", "XY", x)
#[1] "ThXY is a sentence about axis" "A second pattern XY also listed here"
gsub("is", "XY", x)
#[1] "ThXY XY a sentence about axXY" "A second pattern XY also lXYted here