PDA

View Full Version : سوال: عبارت با قاعده



رامین مرادی
چهارشنبه 26 آبان 1400, 14:33 عصر
سلام دوستان وقت بخیر
برای مثال من متن زیر رو دارم:


لورم ایپسوم متن ساختگی با تولید 14-2-3-7 سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه 1-2-8 و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی 9-2-3 و فرهنگ پیشرو در زبان فارسی ایجاد کرد. در این صورت می توان 3-12-11 امید داشت که تمام و دشواری موجود در ارائه راهکارها و شرایط سخت تایپ به پایان رسد وزمان مورد نیاز شامل حروفچینی دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.




من میخوام اون عبارات (14-2-3-7 و 1-2-8 و 9-2-3 و 3-12-11) رو داخل متن پیدا کنم و داخل یه آرایه بریزم. راستیتش راجب عبارات با قاعده کلی خوندم اما نمیتونم درکش کنم.
در صورت امکان عباررت با قاعده این رو برام بگید. در ضمن میشه اونایی که پیدا میکنه رو بریزه داخل آرایه؟

336699
چهارشنبه 26 آبان 1400, 23:08 عصر
سلام

اون کاراکتر جدا کننده اعداد، فقط کاراکتر "-"هستش یا کاراکترهای دیگر هم ممکن هست باشند؟

اعداد موردنظر شما فقط همون دو حالتی که در متن وجود دارد هستند یا بصورت زیر هم ممکن هست وجود داشته باشند؟

11

10-20

10-20-30-40-50

10-20-30-40-50-60

10-20-30-40-50-60-70-80-90

30--10-20

SajjadKhati
چهارشنبه 26 آبان 1400, 23:21 عصر
سلام



string regexEntry = "لورم ایپسوم متن ساختگی با تولید 14-2-3-7 سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه 1-2-8 و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز 9 و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.";
System.Text.RegularExpressions.MatchCollection regexMatches = System.Text.RegularExpressions.Regex.Matches(regex Entry, @"(\d+-)*\d+");

foreach (System.Text.RegularExpressions.Match match in regexMatches)
{
Debug.WriteLine(match.Value);
}

رامین مرادی
پنج شنبه 27 آبان 1400, 08:26 صبح
سلام



string regexEntry = "لورم ایپسوم متن ساختگی با تولید 14-2-3-7 سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه 1-2-8 و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز 9 و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.";
System.Text.RegularExpressions.MatchCollection regexMatches = System.Text.RegularExpressions.Regex.Matches(regex Entry, @"(\d+-)*\d+");

foreach (System.Text.RegularExpressions.Match match in regexMatches)
{
Debug.WriteLine(match.Value);
}





ممنون درست کار کرد. در ضمن قبل این اعداد کلمه ؛بند؛ حتما وجود داره. برا اینکه از شماره گداری لیست داخل متنها هم جدا بشه این کلمه بند رو کجای این عبارت قرار بدم؟

مثال :
بند 1-2-3
بند 12-1
بند 9

336699
پنج شنبه 27 آبان 1400, 12:30 عصر
ممنون درست کار کرد. در ضمن قبل این اعداد کلمه ؛بند؛ حتما وجود داره. برا اینکه از شماره گداری لیست داخل متنها هم جدا بشه این کلمه بند رو کجای این عبارت قرار بدم؟

مثال :
بند 1-2-3
بند 12-1
بند 9


string pattern = @"(?<=بند)(\s+)*(\d+-)*(\d+)";
MatchCollection regexMatches = Regex.Matches(regexEntry, pattern);
foreach (Match match in regexMatches)
MessageBox.Show(match.Value.Trim());