sub返回不正确的数据

chr*_*onn 4 regex r

我有以下代码块:

temp <- "44C"
sub("^([-+]?[0-9]+)([CF])$","\\2",temp)
Run Code Online (Sandbox Code Playgroud)

这正确返回Ç.

然而,当我尝试

temp <- "44"
sub("^([-+]?[0-9]+)([CF])$","\\2",temp)
Run Code Online (Sandbox Code Playgroud)

我期待一个空的矢量.相反,我得到" 44 ".

我说错了吗?

vks*_*vks 5

\2在你的第二种情况下没有.所以它不能替换任何东西并返回原始字符串不变.当正则表达式在sub中失败时,则返回原始字符串.