В вашем примере выше я бы просто использовал регулярное выражение ниже. Он ищет что-нибудь, заканчивающееся 8 числами, сопровождаемыми .txt.
(?<dateTime>\d{8})\.txt$
(?<dateTime> is the start of a named capture group.
\d{8} means exactly 8 digits.
) is the end of the named capture group.
\. means match the character . literally.
txt means match txt literally.
$ means that the string ends there and nothing comes after it.
Если вы не можете использовать именованные группы захвата в своей программе, вы всегда можете использовать приведенное ниже регулярное выражение без него и заменить .txt из него.
\d{8}\.txt$