Существует много примеров этого в сети (и я думаю даже тот, который полностью проверяет RFC - но это - десятки/сотни строк долго, если не изменяет память). Люди склонны увлекаться, проверяя этот вид вещи. Почему не просто проверяют, что это имеет и по крайней мере один. и встречает некоторую простую минимальную длину. Это тривиально, чтобы ввести поддельное электронное письмо и все еще соответствовать любому допустимому regex так или иначе. Я предположил бы, что ложные положительные стороны лучше, чем ложные отрицательные стороны.
Используйте PDFSharp
PDFsharp - это библиотека с открытым исходным кодом, которая легко создает документы PDF на любом языке .NET. Те же самые процедуры рисования можно использовать для создания PDF-документов, рисования на экране или отправки вывода на любой принтер.
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Create an empty page
PdfPage page = document.AddPage();
// Get an XGraphics object for drawing
XGraphics gfx = XGraphics.FromPdfPage(page);
// Create a font
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw the text
gfx.DrawString("Hello, World!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormat.Center);
// Save the document...
string filename = "HelloWorld.pdf";
document.Save(filename);
// ...and start a viewer.
Process.Start(filename);
ОБНОВЛЕНИЕ : SharpPDF выглядит мертвым. Вместо этого используйте PDFSharp ...
Этот вопрос несколько раз задавали на SO:
Я бы порекомендовал iTextSharp : http://sourceforge.net/projects/itextsharp/
Это порт iText: http://www.lowagie.com/iText/