Вы можете использовать следующее регулярное выражение.
\b\d{6}(?:_[A-Z][a-z]+){3}\b
Demo
* Механизм регулярных выражений 1017 * выполняет следующие операции.
\b # match word break
\d{6} # match 6 digits
(?: # begin non-capture group
_[A-Z][a-z]+ # match '_', one upper-case letter, 1+ lower-case letters
) # end non-capture group
{3} # execute non-capture group 3 times
\b # match word break
Совпадение первых 6 символов, которое соответствует дате, может быть более точным, чем простое сопоставление 6 цифр. Например, предполагая, что год равен 2000-2020
, можно заменить \d{6}
на
(?:[01]\d|20)(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|30|31)
, но это все равно не будет гарантировать, что дата действительна.