Нет необходимости в подстроке , просто используйте gsub :
gsub( " .*$", "", dob )
# [1] "9/9/43" "9/17/88" "11/21/48"
Пространство (), то любой символ (
.
) любое количество раз (*
) до конца строки ($
). См. ? Regex , чтобы узнать регулярные выражения.
Вы можете использовать этот шаблон (?(?=.*\.)^.*\.nc$|^.*$)
Это условно с положительным прогнозом, который проверяет, содержит ли строка точку (с шаблоном (?=.*\.)
). Если это так, сопоставьте строку с расширением .nc
(с ^.*\.nc$
), если нет, то сопоставьте всю строку (с ^.*$
).
Вы можете использовать регулярное выражение (\w+.nc\b|\b\w+\b[^.])
. Он будет захватывать что-то вроде abc.nc
и abc
, но не abc.rc
, поэтому он будет захватывать только необходимое расширение или без расширения.