###Corrected answer
Corrected answer
My original answer (see edit history) was not correct, unless all of your data lines are contiguous.
str = "# Heading 1\n# Heading 2\n@ Heading 3\n@ Heading 4\nData 1\n Data 2\nData 3\n@ \
Heading 5\nData 4";
StringReplace[str, Shortest[StartOfLine ~~ "@" | "#" ~~ ___ ~~ "\n"] :> ""]
"Data 1\n Data 2\nData 3\nData 4"
Or:
"" <> StringSplit[str, Shortest[StartOfLine ~~ "@" | "#" ~~ ___ ~~ "\n"]]
"Data 1\n Data 2\nData 3\nData 4"
And the RE equivalent:
First @ StringPattern`PatternConvert[Shortest[StartOfLine ~~ "@" | "#" ~~ ___ ~~ "\n"]]
"(?ms)^[@#].*?\n"
"" <> StringSplit[str, RegularExpression["(?ms)^[@#].*?\n"]]
"Data 1\n Data 2\nData 3\nData 4"