Следующее будет делать то, что вы хотите без регулярных выражений.
String inputString;
String resultingString = "";
for(var line in inputString.Split(new String[]{"\n"})) {
if (line.Trim().Length > 3 || line.Contains("|"))
resultingString += line + "\n";
}
Это предполагает, что у вас есть файл в виде одной большой строки. И это дает вам еще одну строку с удалением необходимых строк.
(Или вы можете сделать это непосредственно с файлом:
string[] goodLines =
// read all of the lines of the file
File.ReadLines("fileLocation").
// filter out the ones you want
Where(line => line.Trim().Length > 3 || line.Contains("|")).ToArray();
В результате вы получите строку [] со всеми правильными строками в вашем файле.)