معرفی ابزاری برای عبارات باقاعده

سلام دوستان
میدونم از خیلی وقت پیش اینجا ننوشتم و حالا بعد از مدتها غیبت دارم شروع میکنم.
راستش بد ندیدم که یه بخش جدیدی رو به فهرست اضافه کنم با عنوان ابزارهای‌برنامه‌نویسی که به معرفی کامپوننت‌ها و ابزارهای موردنیاز بپردازم.
خب میرم سراغ اولین ابزار.
برای من و شما بعنوان برنامه‌نویس، صحت ورود اطلاعات از سمت کاربر در بیشتر حالات از اهمیت ویژه‌ای برخوردار هست. یه نمونه ساده ورود آدرس پست‌الکترونیکی هست که باید بررسی‌های ویژه‌ای در اون گنجانده بشه. بعنوان مثال آدرسهای زیر همه صحیح هستند:

power@yahoo.com
power@ia.un.ir
power.station@yahoo.com

واقعا اگر قرار باشه حالات مختلف رو بررسی کنیم، راهش این نیست که به ازای هر حالت یه دستور شرطی رو بنویسیم. در این موارد میتونیم از عبارات باقاعده (Regular Expression) برای صحت یک ورودی استفاده کنیم.
ابزاری که در اینجا معرفی میکنم با عنوان MTrace‌ از شرکت RegExLab هست که یه محیط ساده و خیلی کارآمد رو در اختیار ما قرار میده تا عبارت با قاعده خودمون رو در اون تعریف کنیم و سپس تست کنیم که چه رشته‌هایی در این عبارت قابل پذیرش خواهد بود.
و جالب تر اینکه سورس همین عبارت رو با زبان‌های چون جاوا، وی‌بی، سی++ و سی‌شارپ ارائه میده که فقط باید کپی کنید و در برنامه خودتون قرار بدید.
برای نمونه یک عبارت باقاعده که صحت آدرس ایمیل رو نشون میده به این قرار هست:

^[a-zA-Z][w.-]*[a-zA-Z0-9]@[a-zA-Z0-9][w.-]*[a-zA-Z0-9].[a-zA-Z][a-zA-Z.]*[a-zA-Z]$

در این ابزار بعد از ورود عبارت، کلیه اجزای آنرا با رنگ‌های مختلف و بخش‌های قابل تفکیک در ساختاری درختی به نمایش میذاره. برای درک درستی از عملکرد این ابزار به تصویر زیر نگاه کنید.

سورس زیر نمونه کد تولید شده به زبان سی‌شارپ هست.

using System.Text.RegularExpressions;

// regular expression object
Regex re = new Regex(@"^[a-zA-Z][w.-]*[a-zA-Z0-9]@[a-zA-Z0-9][w.-]*[a-zA-Z0-9].[a-zA-Z][a-zA-Z.]*[a-zA-Z]$");

// Match object
Match m = re.Match("your string");

// found or not
if( m.Success )
{
    // found
}
else
{
    // not found
}

منتظر ابزارهای بعدی باشید.