PDA

View Full Version : کمک در ساختن یک کد Regular



reza9025
پنج شنبه 06 آذر 1393, 23:08 عصر
با سلام

من می خواستم بین بک سری عدد که نه تعدادشان معلوم است نه تعداد ارقامشان. همه اعداد را برگردانم بجز موارد خاص. مثلا عدد 24 و 196 و 4569

در ضمن مطلع هستم که از ^ استفاده می کنند. ولی هرچی سعی کردم نتونستم درست کنم.


لطفا راهنمایی کنید.اگه میشه برای این سه عدد برام مثال بزنید.

parvizwpf
جمعه 07 آذر 1393, 09:24 صبح
مقادیر رو در لیستی بریزید. سپس مقادیری که نمیخواهید رو در لیستی دیگر:
var result=List1.Where(x=> !List2.Contains(x));

reza9025
جمعه 07 آذر 1393, 13:41 عصر
با تشکر فراوان parvizwpf (http://barnamenevis.org/member.php?243106-parvizwpf)

من می خواستم این کار را با regular انجام بدم. ایا این کار ممکن است؟

rahnema1
جمعه 07 آذر 1393, 17:54 عصر
سلام
حداقل با این دو روش میشه انجام داد

string sformat=
@"((?<=(\D|\b))(\d)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(1\d)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(2[0-3])(?=(\D|\b)))|" +
@"((?<=(\D|\b))(2[5-9])(?=(\D|\b)))|" +
@"((?<=(\D|\b))([3-9]\d)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(1[0-8]\d)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(19[0-5])(?=(\D|\b)))|" +
@"((?<=(\D|\b))(19[7-9])(?=(\D|\b)))|" +
@"((?<=(\D|\b))([2-9]\d{2})(?=(\D|\b)))|" +
@"((?<=(\D|\b))([1-3]\d{3})(?=(\D|\b)))|" +
@"((?<=(\D|\b))(4[0-4]\d{2})(?=(\D|\b)))|" +
@"((?<=(\D|\b))(45[0-5]\d)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(456[0-8])(?=(\D|\b)))|" +
@"((?<=(\D|\b))(45[7-9]\d)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(4[6-9][7-9]\d)(?=(\D|\b)))|" +
@"((?<=(\D|\b))([5-9]\d{3})(?=(\D|\b)))|" +
@"((?<=(\D|\b))([1-9]\d{4,})(?=(\D|\b)))";
foreach (Match element in Regex.Matches("24sd345fg24rg24678dsfd24", sformat))
{
MessageBox.Show(element.Value);
}



string sformat1 =
@"((?<=(\D|\b))(24)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(196)(?=(\D|\b)))|" +
@"((?<=(\D|\b))(4569)(?=(\D|\b)))" ;
string sformat2 = @"((?<=(\D|\b))([1-9]\d+)(?=(\D|\b)))";
foreach (Match element in
Regex.Matches(
Regex.Replace("24sd345fg24rg24678dsfd24" , sformat1, string.Empty)
, sformat2))
{
MessageBox.Show(element.Value);
}