我不太明白为什么这不会导致"test"
并希望得到解释:
a = "blah test"
sub('^.*(test|$)', '\\1', a)
# [1] ""
将其与sed
表达式进行比较:
echo 'blah test' | sed -r 's/^.*(test|$)/\1/'
# test
echo 'blah blah' | sed -r 's/^.*(test|$)/\1/'
#
Fwiw,以下实现了我在 R 中想要的(并且等效于上述sed
结果):
sub('^.*(test)|^.*', '\\1', a)