PDA

View Full Version : سوال: مشکل با پترن استرینگ Regex



Farshid007
پنج شنبه 31 شهریور 1390, 13:21 عصر
سلام
چطوری پترن Regex رو جوری تنظیم کنم که فقط تارخ شمسی رو قبول کنه؟؟
مثلا:
1390/6/21
رو Trueو
13900/6/21
یا
1390/9/0
یا ...
رو False برگردونه(منظورم IsMatch)هستش!
خودم فقط می تونم بگم که شورع بشه با عدد:
^[1-9]
بقیش مثل :/ ، تعداد اعداد و یا ...
چجوریه؟؟
متشکرم
موفق باشید./

aisana
پنج شنبه 31 شهریور 1390, 16:21 عصر
من تو برنامه م برای چک کردن مقدار تاریخ در 1 دیتا گرید از این کد استفاده می کنم


string pattern = "^\\d{4}/\\d{2}/\\d{2}\\Z";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
System.Text.RegularExpressions.Match match = regex.Match(dataGridView1["tarikh1", e.RowIndex].Value.ToString());
if (match.Success == false)
{
dataGridView1["tarikh1", e.RowIndex].ErrorText = " تاریخ را به صورت " + "YYYY/MM/DD وارد نمایید";
 
}
else
dataGridView1["tarikh1", e.RowIndex].ErrorText = "";

Farshid007
پنج شنبه 31 شهریور 1390, 21:31 عصر
این پترن که مشکل داره
public Boolean ShamsiIsTrue(string TarikhShamsi)
{
System.Text.RegularExpressions.Regex R = new System.Text.RegularExpressions.Regex("^\\d{4}/\\d{2}/\\d{2}\\Z");
return R.IsMatch(TarikhShamsi);
}
اینجوری چک میکنم ،وقتی اینو میزنم:
1390/5/5
False
برمی گردونه

Farshid007
جمعه 01 مهر 1390, 20:04 عصر
یعنی کسی از این پترن ها سر در نمی اره؟

aisana
یک شنبه 03 مهر 1390, 11:44 صبح
این پترن که مشکل داره
public Boolean ShamsiIsTrue(string TarikhShamsi)
{
System.Text.RegularExpressions.Regex R = new System.Text.RegularExpressions.Regex("^\\d{4}/\\d{2}/\\d{2}\\Z");
return R.IsMatch(TarikhShamsi);
}
اینجوری چک میکنم ،وقتی اینو میزنم:
1390/5/5
False
برمی گردونه

این "^\\d{4}/\\d{2}/\\d{2}\\Z h ، برای 03/07/1390 اگه می خوای 1390/03/07 باشه باید اینجوری باشه
"^\\d{2}/\\d{2}/\\d{4}\\Z