PDA

View Full Version : سوال: جدا کردن یک رشته از متن با Regex



رامین مرادی
سه شنبه 08 اسفند 1396, 11:36 صبح
سلام دوستان. من تا حالا با regix کار نکردم. یه رشته به صورت زیر دارم
کشتی دوبل( 50 نفر)[126]
میخوام اون عدد 126 که بین کروشه قرار داره رو بردارم.
ممکنه رشته هام کمی متفاوت باشه. ولی تقریبا ساختار همینه. چندتا سرچ هم زدم اما متوجه نشدم چی به چیه

ممکنه جای 126 یه عدد 4 یا 5 یا... رقمی باشه

با این کد پیاده سازیش کردم اما بهتره با ریجکس باشه



string res = "";
for (int i = 0; i < textBox1.Text.Length; i++)
{
string s = textBox1.Text.Substring(i, 1);
if (s == "[")
{
for (int j = 1; j < textBox1.Text.Length - i; j++)
{
string sb = textBox1.Text.Substring(i + j, 1);
if (sb != "]")
{
res += textBox1.Text.Substring(i + j, 1);
}
else
{
break;
}
}
}
}
this.Text = res;

danialafshari
سه شنبه 08 اسفند 1396, 13:59 عصر
با سلام
نیازی به این همه for و if نیست با متد split کارتون راحتر میشه
یک متد براتون نوشتم به این صورت:

public string SplitNum(string str)
{
var strSplit = str.Split('[');
return strSplit[1] = strSplit[1].Substring(0, strSplit[1].Length - 1);
}

این هم توسط Regex :

public string ExtractNumber(string Orgiginal)
{
return System.Text.RegularExpressions.Regex.Match(Orgigin al, @"\[([^)]*)\]").Groups[1].Value;
}

موفق باشید

رامین مرادی
چهارشنبه 09 اسفند 1396, 14:14 عصر
با سلام

این هم توسط Regex :

public string ExtractNumber(string Orgiginal)
{
return System.Text.RegularExpressions.Regex.Match(Orgigin al, @"\[([^)]*)\]").Groups[1].Value;
}

موفق باشید
میشه اینو توضیح بدید

danialafshari
چهارشنبه 09 اسفند 1396, 15:23 عصر
میشه اینو توضیح بدید
http://barnamenevis.org/showthread.php?139020-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%A8%D8%B1%D8%AE%DB%8
http://www.rexegg.com/regex-csharp.html
https://regexone.com/references/csharp
https://www.codeproject.com/Articles/9099/The-Minute-Regex-Tutorial