Мы можем использовать вид сзади для сопоставления /
, который следует за шаблоном "слово-символ-косая черта-слово":
sub("(?<=^\\w/\\w)/", "*", "A/B/C/D", perl = TRUE)
# [1] "A/B*C/D"
Аналогично, мы также можем использовать вид вперед:
sub("/(?=\\w/\\w$)", "*", "A/B/C/D", perl = TRUE)
# [1] "A/B*C/D"
Конечно, мы также можем использовать комбинацию [^[:punct:]]
и [[:punct:]]
для достижения того же результата в этом случае.Имейте в виду, что следующий шаблон является более общим:
sub("(?<=^[^[:punct:]][[:punct:]][^[:punct:]])[[:punct:]]", "*", "A/B/C/D", perl = TRUE)
# [1] "A/B*C/D"