Regex för att validera emailadress

Är absolut inget duktig på RegEx utan förlitar mig alltid på andras uttryck. För att validera email brukar jag använda följande:

[\w\x2E]{2,}\x40{1}[\w\x2E]{2,}\x2E{1}[\w\x2E]{2,}

Blev idag kontaktad av en besökare som hade problem med att skriva in sin hotmail som innehöll ett bindestreck. Hittade ett altenativ som verkar fungera bättre och accepterar bindestreck.

^[\w\.\-_]+@([\w\.\-_]+\.)+[A-Za-z]{2,4}$

By Jesper Lind

Formatera texter med RegEx

Funktionen för att visa källkod på min sida är rätt simpel och highlightar inte några nyckelord. Den visar bara koden i en grå ruta med ram runt. Min har dessutom vart lite buggig och om man hade flera rutor i samma inlägg som formaterades inte alla rätt.

Nu har jag kodat om det och gjort en funktion som använder Regular Expressions. Tänkte dela med mig av denna här. Koden applicerar HtmlEncode på allt som står mellan [codeblock][/codeblock] för att taggarna ska visas som vanlig text.

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;

public partial class example_RegEx_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strInput = "This is a simple code-example that will be formatted with a gray background using RegEx.[codeblock]<html><body>Hello world!</body></html>[/codeblock]";
lblOutput.Text = FormatCodeBlock(strInput);
}

public string FormatCodeBlock (string strInput)
{
string strPattern = @"\[codeblock\]([\w\W]*?)\[/codeblock\]";
string strReplace = @"<div style=""background:#efefef;"">$1</div>";

string strResult;

foreach (Match m in Regex.Matches(strInput, strPattern))
{
string strMatch = m.ToString();
strInput = strInput.Replace(strMatch, Server.HtmlEncode(strMatch));
}

strResult = Regex.Replace(strInput, strPattern, strReplace);
return strResult;
}
}

By Jesper Lind
1