Попробуйте этот шаблон: (?(?<=^)|(?<=\D))\d{4}-\d{2}-\d{2}(?(?=$)|(?=\D))
.
Используется \d{4}-\d{2}-\d{2}
для соответствия вашему формату строки.
Кроме того, за датой не может следовать или предшествовать любая цифра:
(?(?<=^)|(?<=\D))
- это условный поиск: если мы находимся в начале строки, затем начинаем сопоставление, если нет, убедитесь, что то, что раньше, не является цифрой (\D
)
(?(?=$)|(?=\D))
- это предварительный просмотр, аналогичный предварительному просмотру.
Демонстрация
В качестве альтернативы вы можете использовать просто \d{4}-\d{2}-\d{2}
, что также будет соответствовать соседству с каждымдругое.
Демо