PDA

View Full Version : سوال: درخواست توضیح در مورد تابع regex در سی شارپ



فاطمه_14
پنج شنبه 11 خرداد 1391, 23:49 عصر
سلام
خسته نباشید
میشه در مورد این در c# تابع توضیح بدید؟

System.Text.RegularExpressions.Regex.IsMatch
اگه یه مثال کوچولو هم بزنید ممنون میشم.

mrbm_2007
جمعه 12 خرداد 1391, 10:05 صبح
http://www.dotnetperls.com/regex-ismatch
using System;
using System.Text.RegularExpressions;

class Program
{
/// <summary>
/// Test string using Regex.IsMatch static method.
/// </summary>
static bool IsValid(string value)
{
return Regex.IsMatch(value, @"^[a-zA-Z0-9]*$");
}

static void Main()
{
//
// Test the strings with the IsValid method, which uses Regex.IsMatch.
//
Console.WriteLine(IsValid("dotnetperls0123"));
Console.WriteLine(IsValid("DotNetPerls"));
Console.WriteLine(IsValid(":-)"));
// Console.WriteLine(IsValid(null)); // Throws an exception
}
}
--------------------
http://msdn.microsoft.com/en-us/library/3y21t6y4.aspx

فاطمه_14
جمعه 12 خرداد 1391, 12:34 عصر
منظورتوون از این کد

Regex.IsMatch(value, @"^[a-zA-Z0-9]*$"
یعنی اینکه تمام کاراکترها می تونن فقط حروف و ارقام باشن؟
کاراکتر ستاره که در آخر تطبیق گذاشتید یعنی تمامی کاراکترها؟

mrbm_2007
جمعه 12 خرداد 1391, 13:14 عصر
توصیه می کنم در مورد عبارات قاعده دار کمی مطالعه کنید
مفهوم این عبارت اینکه تمام رشته value از کاراکترهای انگلیسی و ارقام 0 تا 9 تشکیل شده باشه
* به معنی تکرار 0 یا جندین بار از عبارت قبل از آن است. یعنی کاراکترهای موجود درون [] صفر یا چند بار تکرار شده باشند
چندتا لینک در مورد عبارات قاعده دار
http://en.wikipedia.org/wiki/Wikipedia:AutoWikiBrowser/Regular_expression
http://en.wikipedia.org/wiki/Regular_expression

فاطمه_14
شنبه 13 خرداد 1391, 17:52 عصر
سلام
من در مورد الگو و عبارات با قاعده مطالعه کردم
بعضی هاشو فهمیدم اما چون خروجی نشون داده نمی شه خیلی هاشو متوجه نشدم
می شه کمکم کنید؟
میشه این کد رو از حالت کنسولی بودن در بیارید تا من خروجیرو ببینم (مثلا در یه تکست باکس یا هر چیزی که قابل دیدن باشه) و بفهمم



using System;
using System.Text.RegularExpressions;

class Example
{
static void Main()
{
string text = "One car red car blue car";
string pat = @"(\w+)\s+(car)";

// Instantiate the regular expression object.
Regex r = new Regex(pat, RegexOptions.IgnoreCase);

// Match the regular expression pattern against a text string.
Match m = r.Match(text);
int matchCount = 0;
while (m.Success)
{
Console.WriteLine("Match"+ (++matchCount));
for (int i = 1; i <= 2; i++)
{
Group g = m.Groups[i];
Console.WriteLine("Group"+i+"='" + g + "'");
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
}
}
m = m.NextMatch();
}
}
}
// This example displays the following output:
// Match1
// Group1='One'
// Capture0='One', Position=0
// Group2='car'
// Capture0='car', Position=4
// Match2
// Group1='red'
// Capture0='red', Position=8
// Group2='car'
// Capture0='car', Position=12
// Match3
// Group1='blue'
// Capture0='blue', Position=16
// Group2='car'
// Capture0='car', Position=21

milad465
پنج شنبه 17 اسفند 1391, 07:33 صبح
سلام
می خواستم بدونم معنی این عبارت از کدهای بالا به چه معنی می باشد.
با تشکر
string pat = @"(\w+)\s+(car)";