نوشته شده توسط
victor007
سلام
میخواستم بدونم این کلاس در کجا استفاده می شود چه کارایی دارد و مقدار بازگشتی ان از چه نوعی میباشد ؟
و هر اطلاعاتی که می توانید در مورد این کلاس بدهید.
ممنون میشوم کمک کنید .
regular expression رشته ای با فرمت خاص میباشد که برای پیدا کردن الگوی مشخصی به کار میرود ودر هنگام صحت سنجی اطلاعات مورد استفاده قرار میگیرد تا مطمعن شویم فرمت خاص وجود دارد
مثال فرض کن
که کد پستی باید 5 رقم باشد یا نام خانوادگی باید با حروف بزرگ شروع بشه.
از regular expression در جاهای دیگه نیز استفاده میشه برای مثال برنامه ای از regular expression برای ساخت کامپایلر مورد استفاده قرار میگیره
در مورد دیگه برای کنترل دستورات برنامه نویسی استفاده میشه
در .net چندین کلاس برای تشخیص استفاده از regular expression وجود داره یکی از این کلاس ها کلاس regular در فضای کاری System.Text.RegularExpression میباشد
این کلاس دارای متدهای static هستش که بدون نیاز تعریف شی از این کلاس میتوان از ان متدها استفاده کرد
کلاس match نتیجه عملیات انجام گرفته توسط regular expression را انجام میدهد.
نکته:در هنگام استفاده از regular expression کلاس Match ربا متد Match اشتباه نگیرید
در زیر کلاس های کارکترهایی که توسط regular expression را استفاده میشن رو نشون میدم
\d
هر چیزی به جز ارقام
\w
هر چیزی به جز کارکتر حروف
\s
هر چیزی به جز کاراکتر whitespase
\D
ارقام
\W
کارکتر حروف
\S
کارکتر whitespace
به برنامه زیر توجه کن
این برنامه سال تولد را میگیرد و ان را با regular expression مقایسه میکند
1.string outp;
2. Regex expression = newRegex(@"J.*\d[0-35-9]-\d\d-\d\d");
3. string string1="Jane's Brithday is 05-12-75\n"+
4. "Dave's Brithday is 11-04-68\n"+
5. "John's brithday is 04-28-73\n"+
6. "Joe's Brithday is 12-17-77";
7. foreach (Match mymatch in expression.Matches(string1))
8. outp += mymatch.ToString() + "\n";
9. MessageBox.show(outp);
خط 2 یک نمونه regex را تولید میکند و انرا طبق الگوی خاصی به regular expression نسبت میدهد اولین کارکتر موجود J میباشد بدان معناست که رشته ای میتواند مطا بقت داشته باشد که با j شروع شود
"." بدان معناست که هر کارکتری غیر از خط جدید میتواند در این قسمت قرار گیرد و
"*." بدان معناست که هر ارقامی میتواند قرار گیرد
"d\" نشانگر هر کارکتر عددی میباشد غیر از کارکترهایی که دارای کلاس مشخص میباشند بقیه را میتوان در داخل [] مشخص نمود محدوده کارکتر ها را با - مشخص میکنیم
در خط 7 از حلقه foreach استفاده شده که هر مورد مطابقت شده را با استفاده از expression.Matches بدست می اورد
به این متد یک رشته به عنوان پارامتر ورودی ارسال میشود
اگه برنامه رو تست کنی مشخص میشه که دو مورد با رشته مشخص شده در Regular Expression مطابقت دارند
در مثال بالا اعداد میتوانند بین 0 تا 3 یا بین 5 تا 9 باشند یعنی 4 در محدوده قرار نمیگیرد.
یه مثال کوچولو فرض کن که میخوایم رشته ورودی چهار رقم باشه اینو مینویسیم
\d\d\d\d
یا تکه کد زیر میگه که رشته ورودی حتما باید از اعداد باشه
if (!Regex.Match(txtid.Text, @"^[0-9]").Success)
{
}
با تشکر
______________________________-
سعادت دیگران بخش مهمی از خوشبختی ماست.
دست هایی که کمک میکنند مقدس تر از لب هایی هستند که دعا میکنند.کوروش کبیر